Function at 0x409520
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xb8
push ebx
push ebp
push esi
mov eax, ecx
mov ecx, 0x22
push edi
mov esi, eax
mov dword [esp + 0xc0], eax
lea edi, [esp + 0x28]
rep movsd dword es:[edi], dword [esi]
cmp dword [esp + 0x80], 0xffffffff
jne 0x40955d
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x68]
mov ebx, dword [esp + 0xa4]
mov edi, dword [esp + 0xa0]
mov ebp, dword [esp + 0x6c]
mov esi, dword [esp + 0x5c]
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0x94]
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0xb0], eax
mov al, byte [esp + 0x55]
mov byte [esp + 0x23], al
mov eax, dword [esp + 0x28]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x24], edx
cmp eax, 0x1c
ja case.default.0x4095ca
jmp dword [eax*4 + 0x40a474]
mov eax, dword [esp + 0x44]
test eax, eax
je 0x40a44c
mov ecx, dword [esp + 0x40]
dec eax
mov dword [esp + 0x44], eax
mov al, byte [ecx]
inc ecx
mov dword [esp + 0x40], ecx
cmp al, 0xe1
ja case.default.0x4095ca
movzx eax, al
mov ecx, 0x2d
cdq
idiv ecx
mov ecx, 9
mov esi, eax
movzx eax, dl
cdq
idiv ecx
movzx ecx, dl
mov edx, 1
mov dword [esp + 0x74], ecx
mov ecx, esi
shl edx, cl
mov ecx, eax
dec edx
mov dword [esp + 0xb8], edx
mov dword [esp + 0x94], edx
mov edx, 1
shl edx, cl
mov ecx, dword [esp + 0x74]
dec edx
mov dword [esp + 0xbc], edx
mov dword [esp + 0x98], edx
lea ecx, [ecx + esi]
mov esi, 0x300
shl esi, cl
add esi, 0x736
lea eax, [esi + esi]
cmp eax, dword [esp + 0x38]
je 0x409697
mov ecx, dword [esp + 0xac]
test ecx, ecx
je 0x409676
push ecx
call dword [sym.imp.KERNEL32.dll_GlobalFree]
lea eax, [esi + esi]
push eax
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov dword [esp + 0xac], eax
test eax, eax
je case.default.0x4095ca
lea ecx, [esi + esi]
mov dword [esp + 0x38], ecx
jmp 0x40969e
mov eax, dword [esp + 0xac]
test esi, esi
je 0x4096ae
mov ecx, 0x400
dec esi
mov word [eax + esi*2], cx
jne 0x4096a7
mov esi, dword [esp + 0x44]
xor edx, edx
xor ecx, ecx
jmp 0x4096e4
mov esi, dword [esp + 0x44]
test esi, esi
je 0x40a291
mov eax, dword [esp + 0x40]
lea ecx, [edx*8]
inc dword [esp + 0x40]
dec esi
mov dword [esp + 0x44], esi
movzx eax, byte [eax]
shl eax, cl
mov ecx, dword [esp + 0x14]
or ecx, eax
inc edx
mov dword [esp + 0x68], edx
mov dword [esp + 0x70], ecx
mov dword [esp + 0x14], ecx
cmp edx, 4
jl 0x4096bc
mov eax, dword [esp + 0x3c]
cmp ecx, eax
je 0x409733
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x3c], ecx
test eax, eax
je 0x409717
push eax
call dword [sym.imp.KERNEL32.dll_GlobalFree]
mov ecx, dword [esp + 0x14]
push ecx
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov dword [esp + 0xa8], eax
test eax, eax
je case.default.0x4095ca
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0xa8]
mov edx, 5
mov byte [ecx + eax - 1], 0
jmp 0x40976f
mov esi, dword [esp + 0x44]
test esi, esi
je 0x40a2b5
mov ecx, dword [esp + 0x40]
dec esi
shl ebx, 8
mov dword [esp + 0x44], esi
movzx eax, byte [ecx]
or ebx, eax
inc ecx
mov dword [esp + 0xa4], ebx
mov dword [esp + 0x40], ecx
mov eax, edx
dec edx
mov dword [esp + 0x24], edx
mov dword [esp + 0x68], edx
test eax, eax
jne 0x40974a
mov ecx, dword [esp + 0x50]
and ecx, dword [esp + 0xb8]
mov eax, dword [esp + 0x78]
shl eax, 4
add eax, ecx
mov dword [esp + 0xb0], ecx
mov dword [esp + 0x64], ecx
mov ecx, dword [esp + 0xac]
mov dword [esp + 0x2c], 6
lea esi, [ecx + eax*2]
jmp 0x40a093
test ecx, ecx
jne 0x409853
movzx edx, byte [esp + 0x54]
mov ecx, 8
sub cl, byte [esp + 0x74]
mov eax, dword [esp + 0x50]
and eax, dword [esp + 0xbc]
shr edx, cl
mov ecx, dword [esp + 0x74]
shl eax, cl
mov ecx, dword [esp + 0xac]
add edx, eax
imul eax, edx, 0x600
add ecx, 0xe6c
add eax, ecx
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x78]
cmp eax, 4
jge 0x40980b
mov dword [esp + 0x78], 0
jmp 0x40981c
cmp eax, 0xa
jge 0x409815
sub eax, 3
jmp 0x409818
sub eax, 6
mov dword [esp + 0x78], eax
cmp dword [esp + 0x7c], 0
je 0x409849
mov eax, dword [esp + 0x9c]
sub eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x3c]
cmp eax, ecx
jb 0x409838
add eax, ecx
mov ecx, dword [esp + 0xa8]
mov ebp, 1
mov al, byte [eax + ecx]
jmp 0x4098c6
mov ebp, 1
jmp 0x409a6d
mov esi, dword [esp + 0x78]
mov eax, dword [esp + 0xac]
add esi, 0xc0
mov dword [esp + 0x7c], 1
mov dword [esp + 0x2c], 7
lea esi, [eax + esi*2]
jmp 0x40a093
mov eax, dword [esp + 0x44]
test eax, eax
je 0x40a2d9
dec eax
shl ebx, 8
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x40]
shl edi, 8
mov dword [esp + 0xa0], edi
movzx eax, byte [eax]
or ebx, eax
inc dword [esp + 0x40]
mov dword [esp + 0xa4], ebx
cmp edx, ecx
jne 0x4099a5
cmp ebp, 0x100
jge 0x409a1d
mov al, byte [esp + 0x23]
mov ecx, dword [esp + 0x58]
movzx edx, al
add al, al
shr edx, 7
mov byte [esp + 0x23], al
mov byte [esp + 0x55], al
mov dword [esp + 0x24], edx
lea eax, [edx + 1]
mov dword [esp + 0x68], edx
shl eax, 8
add eax, ebp
lea esi, [ecx + eax*2]
mov eax, edi
movzx ecx, word [esi]
shr eax, 0xb
imul eax, ecx
mov dword [esp + 0x5c], esi
mov dword [esp + 0x18], ecx
cmp ebx, eax
jae 0x409923
xor edi, edi
mov dword [esp + 0x14], edi
mov dword [esp + 0x70], edi
mov edi, eax
mov eax, 0x800
sub eax, ecx
sar eax, 5
add eax, ecx
add ebp, ebp
mov word [esi], ax
jmp 0x409952
sub ebx, eax
mov dword [esp + 0x14], 1
sub edi, eax
mov dword [esp + 0x70], 1
mov ax, cx
mov dword [esp + 0xa4], ebx
shr ax, 5
lea ebp, [ebp*2 + 1]
sub cx, ax
mov word [esi], cx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x6c], ebp
mov dword [esp + 0xa0], edi
cmp edi, 0x1000000
jae 0x4098ae
jmp case.0x4095ca.13
mov eax, dword [esp + 0x44]
test eax, eax
je 0x40a2fd
mov ecx, dword [esp + 0x40]
dec eax
mov dword [esp + 0x44], eax
shl ebx, 8
shl edi, 8
movzx eax, byte [ecx]
or ebx, eax
mov dword [esp + 0xa0], edi
inc ecx
mov dword [esp + 0xa4], ebx
mov dword [esp + 0x40], ecx
cmp ebp, 0x100
jge 0x409a1d
mov esi, dword [esp + 0x58]
lea eax, [ebp*2]
add esi, eax
mov dword [esp + 0x18], eax
mov eax, edi
mov dword [esp + 0x5c], esi
shr eax, 0xb
movzx ecx, word [esi]
mov edx, ecx
imul eax, edx
cmp ebx, eax
jae 0x4099e8
mov edi, eax
mov eax, 0x800
sub eax, edx
sar eax, 5
add eax, ecx
add ebp, ebp
mov word [esi], ax
jmp 0x409a05
mov ebp, dword [esp + 0x18]
sub ebx, eax
sub edi, eax
mov dword [esp + 0xa4], ebx
mov ax, cx
shr ax, 5
sub cx, ax
inc ebp
mov word [esi], cx
mov dword [esp + 0x6c], ebp
mov dword [esp + 0xa0], edi
cmp edi, 0x1000000
jae 0x4099a5
jmp case.0x4095ca.14
mov al, byte [esp + 0x6c]
mov byte [esp + 0x54], al
mov dword [esp + 0x7c], 0
jmp 0x409aeb
mov eax, dword [esp + 0x44]
test eax, eax
je 0x40a321
mov ecx, dword [esp + 0x40]
dec eax
mov dword [esp + 0x44], eax
shl ebx, 8
shl edi, 8
movzx eax, byte [ecx]
or ebx, eax
mov dword [esp + 0xa0], edi
inc ecx
mov dword [esp + 0xa4], ebx
mov dword [esp + 0x40], ecx
cmp ebp, 0x100
jge 0x409add
mov esi, dword [esp + 0x58]
lea eax, [ebp*2]
add esi, eax
mov dword [esp + 0x18], eax
mov eax, edi
mov dword [esp + 0x5c], esi
shr eax, 0xb
movzx ecx, word [esi]
mov edx, ecx
imul eax, edx
cmp ebx, eax
jae 0x409aa8
mov edi, eax
mov eax, 0x800
sub eax, edx
sar eax, 5
add eax, ecx
add ebp, ebp
mov word [esi], ax
jmp 0x409ac5
mov ebp, dword [esp + 0x18]
sub ebx, eax
sub edi, eax
mov dword [esp + 0xa4], ebx
mov ax, cx
shr ax, 5
sub cx, ax
inc ebp
mov word [esi], cx
mov dword [esp + 0x6c], ebp
mov dword [esp + 0xa0], edi
cmp edi, 0x1000000
jae 0x409a65
jmp case.0x4095ca.15
mov al, byte [esp + 0x6c]
mov byte [esp + 0x54], al
jmp 0x409aeb
mov al, byte [esp + 0x54]
mov edx, dword [esp + 0x4c]
test edx, edx
je 0x40a345
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0xa8]
inc dword [esp + 0x50]
dec dword [esp + 0x4c]
mov byte [edx], al
inc edx
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0x9c]
mov byte [edx + ecx], al
lea eax, [edx + 1]
xor edx, edx
mov ecx, dword [esp + 0x14]
div dword [esp + 0x3c]
mov eax, 2
mov dword [esp + 0x9c], edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x28], eax
jmp 0x4095c1
cmp ecx, 1
jne 0x409b67
mov esi, dword [esp + 0x78]
mov eax, dword [esp + 0xac]
add esi, 0xcc
mov dword [esp + 0x2c], 8
lea esi, [eax + esi*2]
jmp 0x40a093
mov eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0x88]
cmp dword [esp + 0x78], 7
mov dword [esp + 0x90], eax
mov eax, 0xa
mov dword [esp + 0x8c], ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x88], ecx
mov ecx, 7
cmovl eax, ecx
mov dword [esp + 0x30], 0x16
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0xac]
add eax, 0x664
mov dword [esp + 0x2c], 0x12
mov dword [esp + 0x58], eax
mov esi, eax
jmp 0x40a093
test ecx, ecx
jne 0x409bf7
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0xac]
add eax, 0xf
shl eax, 4
add eax, dword [esp + 0xb0]
mov dword [esp + 0x2c], 9
lea esi, [ecx + eax*2]
jmp 0x40a093
mov esi, dword [esp + 0x78]
mov eax, dword [esp + 0xac]
add esi, 0xd8
mov dword [esp + 0x2c], 0xa
lea esi, [eax + esi*2]
jmp 0x40a093
test ecx, ecx
jne 0x409d23
cmp dword [esp + 0x50], ecx
je case.default.0x4095ca
xor eax, eax
cmp dword [esp + 0x78], 7
setge al
lea eax, [eax*2 + 9]
mov dword [esp + 0x78], eax
cmp dword [esp + 0x4c], 0
je 0x40a369
mov edx, dword [esp + 0x9c]
mov eax, edx
sub eax, dword [esp + 0x1c]
cmp eax, dword [esp + 0x3c]
jb 0x409c61
add eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0xa8]
inc dword [esp + 0x50]
mov al, byte [eax + ecx]
mov byte [edx + ecx], al
mov byte [esp + 0x54], al
lea eax, [edx + 1]
xor edx, edx
mov ecx, dword [esp + 0x14]
div dword [esp + 0x3c]
mov al, byte [esp + 0x54]
mov dword [esp + 0x9c], edx
mov edx, dword [esp + 0x48]
mov byte [edx], al
inc edx
dec dword [esp + 0x4c]
mov eax, 2
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x28], eax
jmp 0x4095c1
test ecx, ecx
jne 0x409cbc
mov eax, dword [esp + 0x88]
jmp 0x409d0d
mov esi, dword [esp + 0x78]
mov eax, dword [esp + 0xac]
add esi, 0xe4
mov dword [esp + 0x2c], 0xb
lea esi, [eax + esi*2]
jmp 0x40a093
test ecx, ecx
jne 0x409cea
mov eax, dword [esp + 0x8c]
jmp 0x409cff
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0x90], ecx
mov ecx, dword [esp + 0x88]
mov dword [esp + 0x8c], ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x88], ecx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0xac]
add eax, 0xa68
mov dword [esp + 0x30], 0x15
mov dword [esp + 0x58], eax
mov esi, eax
mov dword [esp + 0x2c], 0x12
jmp 0x40a093
cmp dword [esp + 0x78], 7
mov eax, 0xb
mov edx, 8
cmovl eax, edx
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x1c]
jmp 0x409f9f
cmp dword [esp + 0x80], 4
mov eax, 3
mov ecx, dword [esp + 0xac]
cmovl eax, dword [esp + 0x80]
add ecx, 0x360
shl eax, 7
add eax, ecx
mov dword [esp + 0x34], 0x19
mov dword [esp + 0x58], eax
mov ecx, 6
jmp 0x40a182
mov eax, ebp
cmp ebp, 4
jl 0x409f93
mov ecx, ebp
and eax, 1
sar ecx, 1
or eax, 2
dec ecx
shl eax, cl
mov dword [esp + 0x14], ecx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x84], eax
cmp ebp, 0xe
jge 0x409de9
mov edx, dword [esp + 0xac]
sub eax, ebp
add edx, 0x55e
lea eax, [edx + eax*2]
jmp 0x409e82
xor ebp, ebp
lea edx, [ecx - 4]
jmp 0x409e24
mov eax, dword [esp + 0x44]
test eax, eax
je 0x40a38d
mov ecx, dword [esp + 0x40]
dec eax
mov dword [esp + 0x44], eax
shl ebx, 8
shl edi, 8
movzx eax, byte [ecx]
or ebx, eax
mov dword [esp + 0xa0], edi
inc ecx
mov dword [esp + 0xa4], ebx
mov dword [esp + 0x40], ecx
dec edx
mov dword [esp + 0x68], edx
test edx, edx
jle 0x409e59
shr edi, 1
add ebp, ebp
mov dword [esp + 0xa0], edi
mov dword [esp + 0x6c], ebp
cmp ebx, edi
jb 0x409e4f
sub ebx, edi
or ebp, 1
mov dword [esp + 0xa4], ebx
mov dword [esp + 0x6c], ebp
cmp edi, 0x1000000
jae 0x409e23
jmp case.0x4095ca.12
mov eax, dword [esp + 0x1c]
mov ecx, 4
shl ebp, 4
add eax, ebp
mov dword [esp + 0x14], ecx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0xac]
add eax, 0x644
mov dword [esp + 0x58], eax
xor ebp, ebp
mov eax, 1
mov dword [esp + 0x70], ecx
mov dword [esp + 0x60], eax
xor edx, edx
mov dword [esp + 0x6c], ebp
jmp 0x409ed4
mov eax, dword [esp + 0x44]
test eax, eax
je 0x40a3d8
dec eax
shl ebx, 8
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x40]
shl edi, 8
mov dword [esp + 0xa0], edi
movzx eax, byte [eax]
or ebx, eax
inc dword [esp + 0x40]
mov dword [esp + 0xa4], ebx
mov eax, dword [esp + 0x60]
inc edx
mov dword [esp + 0x68], edx
mov dword [esp + 0x24], edx
cmp edx, ecx
jge 0x409f8d
mov esi, dword [esp + 0x58]
add eax, eax
add esi, eax
mov dword [esp + 0xb4], eax
mov dword [esp + 0x5c], esi
movzx ecx, word [esi]
movzx eax, cx
mov dword [esp + 0x18], eax
mov eax, edi
shr eax, 0xb
imul eax, dword [esp + 0x18]
mov dword [esp + 0xc4], ecx
mov dword [esp + 0x24], eax
cmp ebx, eax
jae 0x409f33
mov edi, eax
mov eax, 0x800
sub eax, dword [esp + 0x18]
sar eax, 5
add eax, ecx
shl dword [esp + 0x60], 1
mov word [esi], ax
jmp 0x409f71
sub ebx, dword [esp + 0x24]
mov ecx, edx
sub edi, dword [esp + 0x24]
mov eax, 1
shl eax, cl
mov ecx, dword [esp + 0xc4]
or ebp, eax
mov ax, cx
mov dword [esp + 0x6c], ebp
shr ax, 5
sub cx, ax
mov dword [esp + 0xa4], ebx
mov eax, dword [esp + 0xb4]
inc eax
mov word [esi], cx
mov dword [esp + 0x60], eax
mov ecx, dword [esp + 0x14]
mov dword [esp + 0xa0], edi
cmp edi, 0x1000000
jae 0x409ecf
jmp case.0x4095ca.16
mov eax, dword [esp + 0x1c]
add eax, ebp
inc eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x84], eax
test eax, eax
je 0x40a3b1
mov edx, dword [esp + 0x50]
cmp eax, edx
ja case.default.0x4095ca
mov eax, dword [esp + 0x80]
add eax, 2
add edx, eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x50], edx
mov edx, dword [esp + 0x9c]
cmp dword [esp + 0x4c], 0
je 0x40a3fc
mov eax, edx
sub eax, dword [esp + 0x1c]
cmp eax, dword [esp + 0x3c]
jb 0x409fec
add eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0xa8]
dec dword [esp + 0x4c]
mov al, byte [eax + ecx]
mov byte [edx + ecx], al
mov byte [esp + 0x54], al
lea eax, [edx + 1]
xor edx, edx
mov ecx, dword [esp + 0x48]
div dword [esp + 0x3c]
mov al, byte [esp + 0x54]
inc dword [esp + 0x48]
mov byte [ecx], al
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x14]
dec eax
mov dword [esp + 0x9c], edx
mov dword [esp + 0x80], eax
test eax, eax
jg 0x409fd1
mov edx, dword [esp + 0x24]
mov eax, 2
mov dword [esp + 0x28], eax
jmp 0x4095c1
mov eax, dword [esp + 0x58]
mov esi, eax
mov dword [esp + 0x2c], 0x12
jmp 0x40a093
test ecx, ecx
jne 0x40a084
mov edx, dword [esp + 0x58]
mov eax, dword [esp + 0xb0]
add edx, 4
shl eax, 4
add edx, eax
mov dword [esp + 0x80], ecx
mov dword [esp + 0x58], edx
mov ecx, 3
jmp 0x40a17a
mov esi, dword [esp + 0x58]
add esi, 2
mov dword [esp + 0x2c], 0x13
mov dword [esp + 0x5c], esi
movzx ecx, word [esi]
mov eax, edi
shr eax, 0xb
imul eax, ecx
mov dword [esp + 0x18], ecx
cmp ebx, eax
jae 0x40a0bf
mov edi, eax
mov eax, 0x800
sub eax, ecx
sar eax, 5
add eax, ecx
xor ecx, ecx
mov word [esi], ax
jmp 0x40a0dc
sub ebx, eax
sub edi, eax
mov ax, cx
mov dword [esp + 0xa4], ebx
shr ax, 5
sub cx, ax
mov word [esi], cx
mov ecx, 1
mov dword [esp + 0x70], ecx
mov dword [esp + 0x14], ecx
mov dword [esp + 0xa0], edi
cmp edi, 0x1000000
jae 0x40a125
mov eax, dword [esp + 0x44]
test eax, eax
je 0x40a420
dec eax
shl ebx, 8
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x40]
shl edi, 8
mov dword [esp + 0xa0], edi
movzx eax, byte [eax]
or ebx, eax
inc dword [esp + 0x40]
mov dword [esp + 0xa4], ebx
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x28], eax
jmp 0x4095c1
test ecx, ecx
jne 0x40a162
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + 0xb0]
add ecx, 0x104
shl eax, 4
add ecx, eax
mov dword [esp + 0x80], 8
mov dword [esp + 0x58], ecx
mov ecx, 3
jmp 0x40a17a
add dword [esp + 0x58], 0x204
mov ecx, 8
mov dword [esp + 0x80], 0x10
mov dword [esp + 0x34], 0x14
mov dword [esp + 0x70], ecx
mov dword [esp + 0x14], ecx
mov ebp, 1
mov edx, ecx
mov dword [esp + 0x60], ebp
jmp 0x40a1cf
mov eax, dword [esp + 0x44]
test eax, eax
je 0x40a444
mov ecx, dword [esp + 0x40]
dec eax
mov dword [esp + 0x44], eax
shl ebx, 8
shl edi, 8
movzx eax, byte [ecx]
or ebx, eax
mov dword [esp + 0xa0], edi
inc ecx
mov dword [esp + 0xa4], ebx
mov dword [esp + 0x40], ecx
mov ebp, dword [esp + 0x60]
dec edx
mov dword [esp + 0x68], edx
mov dword [esp + 0x24], edx
test edx, edx
jle 0x40a25f
mov esi, dword [esp + 0x58]
lea eax, [ebp*2]
add esi, eax
mov dword [esp + 0xb4], eax
mov eax, edi
mov dword [esp + 0x5c], esi
shr eax, 0xb
movzx ecx, word [esi]
imul eax, ecx
mov dword [esp + 0x18], ecx
cmp ebx, eax
jae 0x40a223
mov edi, eax
mov eax, 0x800
sub eax, ecx
sar eax, 5
add eax, ecx
add ebp, ebp
mov word [esi], ax
mov dword [esp + 0x60], ebp
jmp 0x40a247
sub ebx, eax
sub edi, eax
mov ax, cx
mov dword [esp + 0xa4], ebx
shr ax, 5
sub cx, ax
mov eax, dword [esp + 0xb4]
inc eax
mov word [esi], cx
mov dword [esp + 0x60], eax
mov dword [esp + 0xa0], edi
cmp edi, 0x1000000
jae 0x40a1ca
jmp case.0x4095ca.24
mov ecx, dword [esp + 0x14]
mov eax, 1
shl eax, cl
sub ebp, eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x6c], ebp
mov dword [esp + 0x28], eax
jmp 0x4095c1
mov eax, dword [esp + 0x30]
add dword [esp + 0x80], ebp
mov dword [esp + 0x28], eax
jmp 0x4095c1
mov edi, dword [esp + 0xc0]
lea esi, [esp + 0x28]
mov ecx, 0x22
mov dword [esp + 0x28], 1
rep movsd dword es:[edi], dword [esi]
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, dword [esp + 0xc0]
lea esi, [esp + 0x28]
mov ecx, 0x22
mov dword [esp + 0x28], 3
rep movsd dword es:[edi], dword [esi]
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, dword [esp + 0xc0]
lea esi, [esp + 0x28]
mov ecx, 0x22
mov dword [esp + 0x28], 0xd
rep movsd dword es:[edi], dword [esi]
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, dword [esp + 0xc0]
lea esi, [esp + 0x28]
mov ecx, 0x22
mov dword [esp + 0x28], 0xe
rep movsd dword es:[edi], dword [esi]
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, dword [esp + 0xc0]
lea esi, [esp + 0x28]
mov ecx, 0x22
mov dword [esp + 0x28], 0xf
rep movsd dword es:[edi], dword [esi]
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, dword [esp + 0xc0]
lea esi, [esp + 0x28]
mov ecx, 0x22
mov dword [esp + 0x28], 0x1a
rep movsd dword es:[edi], dword [esi]
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, dword [esp + 0xc0]
lea esi, [esp + 0x28]
mov ecx, 0x22
mov dword [esp + 0x28], 0x1b
rep movsd dword es:[edi], dword [esi]
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, dword [esp + 0xc0]
lea esi, [esp + 0x28]
mov ecx, 0x22
mov dword [esp + 0x28], 0xc
rep movsd dword es:[edi], dword [esi]
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, dword [esp + 0xc0]
lea esi, [esp + 0x28]
mov ecx, 0x22
mov dword [esp + 0x80], 0xffffffff
rep movsd dword es:[edi], dword [esi]
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, dword [esp + 0xc0]
lea esi, [esp + 0x28]
mov ecx, 0x22
mov dword [esp + 0x28], 0x10
rep movsd dword es:[edi], dword [esi]
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, dword [esp + 0xc0]
lea esi, [esp + 0x28]
mov ecx, 0x22
mov dword [esp + 0x28], 0x1c
rep movsd dword es:[edi], dword [esi]
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, dword [esp + 0xc0]
lea esi, [esp + 0x28]
mov ecx, 0x22
mov dword [esp + 0x28], 5
rep movsd dword es:[edi], dword [esi]
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x28], 0x18
mov edi, dword [esp + 0xc0]
lea esi, [esp + 0x28]
mov ecx, 0x22
xor eax, eax
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
or eax, 0xffffffff
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret