Function at 0x408ea0
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 0x408edd
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.0x408f4a
jmp dword [eax*4 + 0x409df4]
mov eax, dword [esp + 0x44]
test eax, eax
je 0x409dcc
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.0x408f4a
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 0x409017
mov ecx, dword [esp + 0xac]
test ecx, ecx
je 0x408ff6
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.0x408f4a
lea ecx, [esi + esi]
mov dword [esp + 0x38], ecx
jmp 0x40901e
mov eax, dword [esp + 0xac]
test esi, esi
je 0x40902e
mov ecx, 0x400
dec esi
mov word [eax + esi*2], cx
jne 0x409027
mov esi, dword [esp + 0x44]
xor edx, edx
xor ecx, ecx
jmp 0x409064
mov esi, dword [esp + 0x44]
test esi, esi
je 0x409c11
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 0x40903c
mov eax, dword [esp + 0x3c]
cmp ecx, eax
je 0x4090b3
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x3c], ecx
test eax, eax
je 0x409097
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.0x408f4a
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0xa8]
mov edx, 5
mov byte [ecx + eax - 1], 0
jmp 0x4090ef
mov esi, dword [esp + 0x44]
test esi, esi
je 0x409c35
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 0x4090ca
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 0x409a13
test ecx, ecx
jne 0x4091d3
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 0x40918b
mov dword [esp + 0x78], 0
jmp 0x40919c
cmp eax, 0xa
jge 0x409195
sub eax, 3
jmp 0x409198
sub eax, 6
mov dword [esp + 0x78], eax
cmp dword [esp + 0x7c], 0
je 0x4091c9
mov eax, dword [esp + 0x9c]
sub eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x3c]
cmp eax, ecx
jb 0x4091b8
add eax, ecx
mov ecx, dword [esp + 0xa8]
mov ebp, 1
mov al, byte [eax + ecx]
jmp 0x409246
mov ebp, 1
jmp 0x4093ed
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 0x409a13
mov eax, dword [esp + 0x44]
test eax, eax
je 0x409c59
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 0x409325
cmp ebp, 0x100
jge 0x40939d
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 0x4092a3
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 0x4092d2
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 0x40922e
jmp case.0x408f4a.13
mov eax, dword [esp + 0x44]
test eax, eax
je 0x409c7d
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 0x40939d
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 0x409368
mov edi, eax
mov eax, 0x800
sub eax, edx
sar eax, 5
add eax, ecx
add ebp, ebp
mov word [esi], ax
jmp 0x409385
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 0x409325
jmp case.0x408f4a.14
mov al, byte [esp + 0x6c]
mov byte [esp + 0x54], al
mov dword [esp + 0x7c], 0
jmp 0x40946b
mov eax, dword [esp + 0x44]
test eax, eax
je 0x409ca1
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 0x40945d
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 0x409428
mov edi, eax
mov eax, 0x800
sub eax, edx
sar eax, 5
add eax, ecx
add ebp, ebp
mov word [esi], ax
jmp 0x409445
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 0x4093e5
jmp case.0x408f4a.15
mov al, byte [esp + 0x6c]
mov byte [esp + 0x54], al
jmp 0x40946b
mov al, byte [esp + 0x54]
mov edx, dword [esp + 0x4c]
test edx, edx
je 0x409cc5
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 0x408f41
cmp ecx, 1
jne 0x4094e7
mov esi, dword [esp + 0x78]
mov eax, dword [esp + 0xac]
add esi, 0xcc
mov dword [esp + 0x2c], 8
lea esi, [eax + esi*2]
jmp 0x409a13
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 0x409a13
test ecx, ecx
jne 0x409577
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 0x409a13
mov esi, dword [esp + 0x78]
mov eax, dword [esp + 0xac]
add esi, 0xd8
mov dword [esp + 0x2c], 0xa
lea esi, [eax + esi*2]
jmp 0x409a13
test ecx, ecx
jne 0x4096a3
cmp dword [esp + 0x50], ecx
je case.default.0x408f4a
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 0x409ce9
mov edx, dword [esp + 0x9c]
mov eax, edx
sub eax, dword [esp + 0x1c]
cmp eax, dword [esp + 0x3c]
jb 0x4095e1
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 0x408f41
test ecx, ecx
jne 0x40963c
mov eax, dword [esp + 0x88]
jmp 0x40968d
mov esi, dword [esp + 0x78]
mov eax, dword [esp + 0xac]
add esi, 0xe4
mov dword [esp + 0x2c], 0xb
lea esi, [eax + esi*2]
jmp 0x409a13
test ecx, ecx
jne 0x40966a
mov eax, dword [esp + 0x8c]
jmp 0x40967f
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 0x409a13
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 0x40991f
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 0x409b02
mov eax, ebp
cmp ebp, 4
jl 0x409913
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 0x409769
mov edx, dword [esp + 0xac]
sub eax, ebp
add edx, 0x55e
lea eax, [edx + eax*2]
jmp 0x409802
xor ebp, ebp
lea edx, [ecx - 4]
jmp 0x4097a4
mov eax, dword [esp + 0x44]
test eax, eax
je 0x409d0d
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 0x4097d9
shr edi, 1
add ebp, ebp
mov dword [esp + 0xa0], edi
mov dword [esp + 0x6c], ebp
cmp ebx, edi
jb 0x4097cf
sub ebx, edi
or ebp, 1
mov dword [esp + 0xa4], ebx
mov dword [esp + 0x6c], ebp
cmp edi, 0x1000000
jae 0x4097a3
jmp case.0x408f4a.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 0x409854
mov eax, dword [esp + 0x44]
test eax, eax
je 0x409d58
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 0x40990d
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 0x4098b3
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 0x4098f1
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 0x40984f
jmp case.0x408f4a.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 0x409d31
mov edx, dword [esp + 0x50]
cmp eax, edx
ja case.default.0x408f4a
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 0x409d7c
mov eax, edx
sub eax, dword [esp + 0x1c]
cmp eax, dword [esp + 0x3c]
jb 0x40996c
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 0x409951
mov edx, dword [esp + 0x24]
mov eax, 2
mov dword [esp + 0x28], eax
jmp 0x408f41
mov eax, dword [esp + 0x58]
mov esi, eax
mov dword [esp + 0x2c], 0x12
jmp 0x409a13
test ecx, ecx
jne 0x409a04
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 0x409afa
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 0x409a3f
mov edi, eax
mov eax, 0x800
sub eax, ecx
sar eax, 5
add eax, ecx
xor ecx, ecx
mov word [esi], ax
jmp 0x409a5c
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 0x409aa5
mov eax, dword [esp + 0x44]
test eax, eax
je 0x409da0
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 0x408f41
test ecx, ecx
jne 0x409ae2
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 0x409afa
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 0x409b4f
mov eax, dword [esp + 0x44]
test eax, eax
je 0x409dc4
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 0x409bdf
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 0x409ba3
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 0x409bc7
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 0x409b4a
jmp case.0x408f4a.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 0x408f41
mov eax, dword [esp + 0x30]
add dword [esp + 0x80], ebp
mov dword [esp + 0x28], eax
jmp 0x408f41
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