Function at 0x40b5e9
Capabilities:
Enumerate pe sections
Resolve function by parsing pe exports

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov edx, dword [ebp + 8]
sub esp, 0x6c
push ebx
mov ebx, dword [ebp + 0xc]
xor eax, eax
push esi
push edi
cmp dword [edx + 4], eax
je 0x4114ce
cmp dword [edx + 0x10], eax
je 0x4114ce
cmp dword [edx + 0x14], eax
je 0x4114ce
push 0x1e
lea esi, [esp + 0x34]
mov edi, ebx
call fcn.0040ce98
mov edi, eax
mov dword [esp + 0x2c], edi
test edi, edi
je 0x42c290
mov eax, dword [edi + 0xe0]
mov ecx, dword [edi + 0xf4]
cmp ecx, dword [eax + 0xc]
jne 0x42c299
push dword [edi + 0x1ec]
mov eax, dword [eax + 0x10]
push eax
call fcn.0040c15a
cmp byte [edi + 0x2b9], 0
mov dword [esp + 0x30], eax
lea eax, [edi + 0x24e]
jne 0x42c2d7
cmp byte [edi + 0x138], 0
jne 0x42c56c
lea eax, [esp + 0x5c]
push eax
lea eax, [esp + 0x78]
push eax
lea eax, [esp + 0x78]
push eax
lea eax, [esp + 0x70]
push eax
push 1
push 1
lea eax, [edi + 0x174]
push 0
lea edx, [esp + 0x7c]
lea esi, [esp + 0x88]
lea edi, [esp + 0x84]
call fcn.0040cd34
lea ecx, [esp + 0x5c]
call fcn.0040ac0e
mov edi, dword [esp + 0x2c]
mov esi, dword [ebp + 8]
lea eax, [edi + 0x24c]
mov dword [esp + 0x1c], eax
push edi
mov eax, esi
mov dword [esp + 0x18], 1
call fcn.0040b5cc
test ax, ax
jne 0x42c593
push dword [edi + 0x1d0]
mov eax, dword [edi + 0xe0]
push dword [eax + 0xc]
call fcn.0040c15a
mov dword [edi + 0x288], eax
mov eax, dword [edi + 0x31c]
lea ecx, [edi + 0x270]
mov dword [ecx], eax
cmp dword [esi + 0x3c], 0
jne 0x42c5cc
xor esi, esi
and dword [esp + 0x24], esi
push dword [esp + 0x24]
movzx eax, word [edi + 0x10c]
push esi
push eax
push ecx
push dword [esp + 0x2c]
lea eax, [esp + 0x70]
push eax
mov eax, dword [esp + 0x2c]
call fcn.004085c6
cmp eax, 0x1305
je 0x42c63d
test eax, eax
jne 0x40bb0c
mov eax, dword [ebp + 8]
push edi
call fcn.0040b5cc
test ax, ax
jne 0x42c674
movsx ecx, word [edi + 0x250]
lea eax, [esp + 0x4c]
push eax
lea eax, [esp + 0x58]
push eax
lea eax, [esp + 0x24]
push eax
lea eax, [esp + 0x30]
push eax
lea eax, [esp + 0x44]
push eax
movsx eax, word [edi + 0x24e]
shl ecx, 6
push ecx
mov ecx, dword [edi + 0x17c]
shl eax, 6
call fcn.004062ea
mov eax, dword [esp + 0x34]
shl eax, 0xa
mov dword [ebx + 0x48], eax
mov eax, dword [esp + 0x38]
shl eax, 0xa
mov dword [ebx + 0x4c], eax
mov eax, dword [esp + 0x24]
shl eax, 0xa
mov dword [ebx + 0x50], eax
mov eax, dword [esp + 0x28]
shl eax, 0xa
mov dword [ebx + 0x54], eax
mov eax, dword [esp + 0x1c]
shl eax, 0xa
mov dword [ebx + 0x30], eax
mov eax, dword [esp + 0x20]
shl eax, 0xa
mov dword [ebx + 0x34], eax
mov eax, dword [esp + 0x54]
shl eax, 0xa
mov dword [ebx + 0x40], eax
mov eax, dword [esp + 0x58]
shl eax, 0xa
mov dword [ebx + 0x44], eax
mov eax, dword [esp + 0x4c]
shl eax, 0xa
mov dword [ebx + 0x38], eax
mov eax, dword [esp + 0x50]
shl eax, 0xa
mov dword [ebx + 0x3c], eax
mov ecx, dword [edi + 0x17c]
lea eax, [esp + 0x3c]
push eax
lea eax, [esp + 0x48]
push eax
lea eax, [esp + 0x5c]
push eax
lea eax, [esp + 0x58]
push eax
lea eax, [esp + 0x24]
push eax
movsx eax, word [edi + 0x24e]
shl eax, 6
push eax
movsx eax, word [edi + 0x250]
shl eax, 6
call fcn.004063ac
mov eax, dword [esp + 0x14]
shl eax, 0xa
mov dword [ebx + 0xa8], eax
mov eax, dword [esp + 0x18]
shl eax, 0xa
mov dword [ebx + 0xac], eax
mov eax, dword [esp + 0x4c]
shl eax, 0xa
mov dword [ebx + 0xb0], eax
mov eax, dword [esp + 0x50]
shl eax, 0xa
mov dword [ebx + 0xb4], eax
mov eax, dword [esp + 0x54]
shl eax, 0xa
mov dword [ebx + 0x90], eax
mov eax, dword [esp + 0x58]
shl eax, 0xa
mov dword [ebx + 0x94], eax
mov eax, dword [esp + 0x44]
shl eax, 0xa
mov dword [ebx + 0xa0], eax
mov eax, dword [esp + 0x48]
shl eax, 0xa
mov dword [ebx + 0xa4], eax
mov eax, dword [esp + 0x3c]
shl eax, 0xa
mov dword [ebx + 0x98], eax
mov eax, dword [esp + 0x40]
shl eax, 0xa
mov dword [ebx + 0x9c], eax
movzx eax, word [edi + 0x148]
push eax
push dword [esp + 0x34]
lea esi, [edi + 0x110]
lea ecx, [ebx + 0x28]
mov eax, esi
call fcn.0040cdbf
push dword [esp + 0x30]
mov ax, word [edi + 0x14a]
push esi
lea esi, [ebx + 0x88]
call fcn.0040d01e
mov edx, dword [esp + 0x2c]
push 0xc
add edi, 0x2bc
pop ecx
lea esi, [ebx + 0x28]
rep movsd dword es:[edi], dword [esi]
push 0xc
lea edi, [edx + 0x2ec]
pop ecx
lea esi, [ebx + 0x88]
rep movsd dword es:[edi], dword [esi]
lea edi, [edx + 0x24e]
mov ax, word [edi + 4]
mov word [ebx + 0x5e], ax
mov ax, word [edi]
and dword [ebx + 0x58], 0
mov word [ebx + 0x62], ax
movzx eax, word [edx + 0x382]
test al, 1
je 0x42c97c
test al, 0x40
je 0x42c7a3
movzx eax, word [edi + 2]
movzx ecx, word [edx + 0x3fe]
test ax, ax
js 0x4114bc
cwde
cdq
idiv ecx
mov esi, dword [esp + 0x2c]
mov word [ebx + 0x60], ax
movzx ecx, word [esi + 0x3fe]
mov dword [esp + 0x30], eax
movsx eax, word [edi + 6]
lea edx, [eax + ecx - 1]
test edx, edx
js 0x40b97b
mov eax, edx
cdq
idiv ecx
mov ecx, eax
mov word [ebx + 0x64], cx
movzx eax, word [edi + 4]
movzx esi, word [esi + 0x400]
test ax, ax
js 0x40bb15
cwde
cdq
idiv esi
mov esi, dword [esp + 0x2c]
mov word [ebx + 0x5e], ax
movsx eax, word [edi]
movzx edx, word [esi + 0x400]
movzx edi, word [esi + 0x400]
lea edx, [edx + eax - 1]
test edx, edx
js 0x40b9bf
mov eax, edx
cdq
idiv edi
sub ecx, dword [esp + 0x30]
push 9
add ecx, 3
and ecx, 0xfffffffc
mov word [ebx + 0x5c], cx
lea edi, [esi + 0x294]
pop ecx
mov word [ebx + 0x62], ax
lea eax, [esi + 0x24c]
mov esi, eax
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x2c]
mov cx, word [edi + 0x298]
mov word [ebx + 0xc8], cx
mov cx, word [edi + 0x29a]
mov word [ebx + 0xc6], cx
mov cx, word [edi + 0x29c]
mov word [ebx + 0xcc], cx
mov cx, word [edi + 0x296]
mov word [ebx + 0xca], cx
mov cx, word [ebx + 0x5c]
mov word [eax], cx
mov ax, word [ebx + 0x60]
movsx ecx, word [edi + 0x24e]
mov word [edi + 0x250], ax
mov ax, word [ebx + 0x64]
mov word [edi + 0x254], ax
movsx eax, word [ebx + 0x5c]
mov dword [esp + 0x44], eax
movsx eax, word [edi + 0x252]
sub ecx, eax
push ecx
lea esi, [esp + 0x40]
lea eax, [esp + 0x48]
call fcn.00406462
mov eax, dword [eax]
mov dword [edi + 0x268], eax
mov eax, dword [edi + 0x2b0]
mov dword [ebx + 0x20], eax
mov edx, edi
mov eax, dword [ebp + 8]
push edx
call fcn.0040b5cc
test ax, ax
jne 0x42c99c
mov ax, word [ebx + 0x5c]
lea esi, [edx + 0x24c]
mov word [esi], ax
mov eax, dword [edx + 0x268]
mov dword [ebx + 0x14], eax
mov ecx, dword [edx + 0x274]
lea eax, [ebx + 0x18]
mov dword [eax], ecx
mov ecx, dword [edx + 0x278]
mov dword [esp + 0x24], eax
lea eax, [ebx + 0x1c]
mov dword [eax], ecx
test byte [edx + 0x382], 1
mov dword [esp + 0x30], eax
je 0x42c9f7
mov edi, dword [esp + 0x2c]
mov eax, dword [ebp + 8]
cmp dword [eax + 0x3c], 2
je 0x42cacc
push dword [esp + 0x30]
mov esi, dword [esp + 0x30]
push dword [esp + 0x28]
mov eax, dword [esi + 0x270]
mov ecx, dword [esi + 0x31c]
add edi, 0x18c
call fcn.0040a5e4
mov dword [esi + 0x16c], 0x3e
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
movsx edx, ax
mov eax, esi
sub eax, edx
dec eax
cdq
idiv esi
neg eax
jmp 0x40b99c
movsx edx, ax
mov eax, ecx
sub eax, edx
dec eax
cdq
idiv ecx
neg eax
jmp 0x40b95a
mov eax, 0x1003
jmp 0x40bb0c
mov eax, dword [esp + 0x30]
jmp 0x40bb0c
lea ecx, [edi + 0x18c]
push ecx
push dword [eax + 0xc]
lea esi, [edi + 0x174]
call fcn.0040e796
mov eax, esi
lea ecx, [edi + 0x18c]
call fcn.00405805
mov eax, dword [edi + 0xe0]
push 9
add edi, 0xe8
pop ecx
mov esi, eax
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x2c]
jmp 0x40b64a
lea ecx, [esp + 0x44]
push ecx
lea ecx, [esp + 0x40]
push ecx
lea ecx, [esp + 0x18]
push ecx
push eax
lea eax, [esp + 0x64]
push eax
lea eax, [esp + 0x60]
push eax
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0x38]
push eax
lea eax, [esp + 0x44]
push eax
lea eax, [esp + 0x58]
push eax
push edi
lea eax, [edi + 0x328]
push eax
call fcn.00446edc
test eax, eax
jne 0x40bb0c
mov eax, dword [esp + 0x34]
mov esi, dword [esp + 0x20]
shl eax, 0xa
mov edx, dword [esp + 0x1c]
mov dword [ebx + 0x48], eax
mov eax, dword [esp + 0x38]
shl esi, 0xa
mov dword [ebx + 0x34], esi
shl eax, 0xa
mov dword [ebx + 0x4c], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x24], esi
mov esi, dword [esp + 0x14]
shl esi, 0xa
mov dword [ebx + 0xa8], esi
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x28]
shl esi, 0xa
mov dword [ebx + 0xac], esi
mov esi, dword [esp + 0x4c]
shl esi, 0xa
mov dword [ebx + 0xb0], esi
mov dword [esp + 0x1c], esi
mov esi, dword [esp + 0x50]
shl eax, 0xa
mov dword [ebx + 0x50], eax
mov dword [ebx + 0x40], eax
mov eax, dword [esp + 0x24]
shl esi, 0xa
mov dword [ebx + 0xb4], esi
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0x54]
mov dword [ebx + 0x3c], eax
mov eax, dword [esp + 0x1c]
shl edx, 0xa
shl esi, 0xa
mov dword [ebx + 0xa0], eax
mov eax, dword [esp + 0x14]
mov dword [ebx + 0x90], esi
mov dword [esp + 0x34], esi
mov esi, dword [esp + 0x58]
mov dword [ebx + 0x30], edx
mov dword [ebx + 0x38], edx
mov edx, dword [esp + 0x30]
mov dword [ebx + 0xa4], eax
mov eax, dword [esp + 0x34]
shl ecx, 0xa
shl esi, 0xa
mov dword [ebx + 0x54], ecx
mov dword [ebx + 0x94], esi
mov dword [ebx + 0x44], ecx
mov dword [ebx + 0x98], eax
mov dword [ebx + 0x9c], esi
movzx edx, byte [edx + 0x15d]
mov esi, dword [esp + 0x2c]
push edx
lea edx, [esp + 0x18]
push edx
lea edx, [esp + 0x24]
push edx
lea edx, [esp + 0x30]
lea eax, [edi + 0x14a]
push edx
push eax
movzx eax, word [edi + 0xd0]
lea ecx, [edi + 0x148]
push eax
mov edi, ecx
mov dword [esp + 0x4c], ecx
call fcn.0040c3ae
test eax, eax
jne 0x40bb0c
mov edx, dword [esp + 0x34]
movzx edx, word [edx]
push edx
push dword [esp + 0x34]
mov edi, esi
lea eax, [edi + 0x110]
lea ecx, [ebx + 0x28]
call fcn.0040cdbf
push dword [esp + 0x30]
lea eax, [edi + 0x110]
push eax
mov ax, word [edi + 0x14a]
lea esi, [ebx + 0x88]
call fcn.0040d01e
mov ax, word [edi + 0x250]
mov word [ebx + 0x60], ax
mov ax, word [edi + 0x254]
mov word [ebx + 0x64], ax
mov ax, word [edi + 0x252]
mov word [ebx + 0x5e], ax
mov ax, word [edi + 0x24e]
mov word [ebx + 0x62], ax
mov ax, word [esp + 0x10]
mov ecx, 0x7fff
cmp ax, cx
jbe 0x42c4a8
call fcn.004439d8
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x44]
mov word [ebx + 0x5c], ax
xor eax, eax
mov dword [ebx + 0x58], eax
mov dword [ebx + 0x14], ecx
lea ecx, [ebx + 0x18]
mov dword [ecx], edx
mov dword [esp + 0x24], ecx
lea ecx, [ebx + 0x1c]
mov dword [ecx], eax
mov dword [ebx + 0x20], eax
mov eax, dword [ebp + 8]
cmp dword [eax + 0x3c], 3
mov dword [esp + 0x30], ecx
jne 0x40bad0
movsx ecx, word [ebx + 0x60]
movsx eax, word [ebx + 0x64]
sub eax, ecx
movzx ecx, word [edi + 0x3fe]
imul eax, ecx
call fcn.00443abe
mov word [ebx + 0x5c], ax
mov ax, word [edi + 0x250]
imul ax, word [edi + 0x3fe]
mov word [ebx + 0xc8], ax
mov ax, word [edi + 0x252]
mov word [ebx + 0xc6], ax
mov ax, word [edi + 0x254]
imul ax, word [edi + 0x3fe]
mov word [ebx + 0xcc], ax
mov ax, word [edi + 0x24e]
mov word [ebx + 0xca], ax
mov ax, word [ebx + 0x5c]
movsx ecx, word [edi + 0x24e]
mov word [edi + 0x24c], ax
movsx eax, word [ebx + 0x5c]
mov dword [esp + 0x44], eax
movsx eax, word [edi + 0x252]
sub ecx, eax
push ecx
jmp 0x42ca8d
mov eax, dword [edi + 0x17c]
movsx edx, word [eax + 0x28]
mov ecx, dword [eax]
mov eax, dword [eax + 0x20]
movzx eax, word [eax + edx*2 - 2]
jmp 0x42c588
inc dword [ecx]
add ecx, 4
dec eax
test ax, ax
js 0x40b67d
jmp 0x42c582
push edi
mov eax, esi
call fcn.0040b5cc
movzx eax, ax
push eax
mov eax, ecx
call fcn.00449a82
test eax, eax
jne 0x40bb0c
lea eax, [edi + 0x294]
mov dword [esp + 0x1c], eax
push edi
mov eax, esi
call fcn.0040b5cc
movzx eax, ax
mov dword [esp + 0x14], eax
jmp 0x40b6e7
push edi
mov eax, esi
call fcn.0040b5cc
test ax, ax
je 0x42c5f7
push edi
mov eax, esi
call fcn.0040b5cc
imul ax, word [edi + 0x37e]
movzx esi, ax
mov eax, dword [ebp + 8]
push edi
call fcn.0040b5cc
jmp 0x42c619
test byte [edi + 0x382], 1
je 0x42c626
mov ax, word [edi + 0x3fe]
imul ax, word [edi + 0x37e]
movzx esi, ax
mov ax, word [edi + 0x400]
imul ax, word [edi + 0x380]
movzx eax, ax
jmp 0x42c634
movzx esi, word [edi + 0x37e]
movzx eax, word [edi + 0x380]
mov dword [esp + 0x24], eax
jmp 0x40b71f
push dword [esp + 0x24]
mov eax, 0xfffb
and word [edi + 0x10c], ax
movzx eax, word [edi + 0x10c]
push esi
push eax
lea eax, [edi + 0x270]
push eax
push dword [esp + 0x2c]
lea eax, [esp + 0x70]
push eax
mov eax, dword [esp + 0x2c]
call fcn.004085c6
jmp 0x40b74a
mov eax, dword [ebp + 8]
push edi
call fcn.0040b5cc
movzx ecx, ax
mov eax, 0x7fff
mov dword [esp + 0x24], ecx
cmp cx, ax
ja 0x42c4a3
cmp byte [edi + 0x2b8], 0
je 0x42c73a
mov eax, dword [edi + 0x2a0]
call fcn.00443992
mov ecx, dword [esp + 0x24]
add eax, 0x1f
sar eax, 6
mov word [edi + 0x250], ax
mov eax, dword [edi + 0x2a4]
call fcn.00443992
mov ecx, dword [esp + 0x24]
add eax, 0x20
sar eax, 6
mov word [edi + 0x254], ax
mov eax, dword [edi + 0x2a8]
call fcn.00443992
mov ecx, dword [esp + 0x24]
add eax, 0x1f
sar eax, 6
mov word [edi + 0x252], ax
mov eax, dword [edi + 0x2ac]
call fcn.00443992
add eax, 0x20
sar eax, 6
mov word [edi + 0x24e], ax
movzx eax, word [edi + 0x254]
cmp word [edi + 0x250], ax
jne 0x42c723
inc eax
mov word [edi + 0x254], ax
movzx eax, word [edi + 0x24e]
cmp word [edi + 0x252], ax
jne 0x40b764
inc eax
jmp 0x42c797
movsx eax, word [edi + 0x298]
call fcn.00443992
mov ecx, dword [esp + 0x24]
mov word [edi + 0x250], ax
mov ax, word [edi + 0x29c]
add ax, cx
dec ax
cwde
call fcn.00443992
mov ecx, dword [esp + 0x24]
mov word [edi + 0x254], ax
movsx eax, word [edi + 0x29a]
call fcn.00443992
mov ecx, dword [esp + 0x24]
mov word [edi + 0x252], ax
mov ax, word [edi + 0x296]
add ax, cx
dec ax
cwde
call fcn.00443992
mov word [edi + 0x24e], ax
jmp 0x40b764
movzx ecx, word [edx + 0x3fe]
mov eax, ecx
shr eax, 1
add eax, dword [ebx + 0x48]
cdq
idiv ecx
mov ecx, dword [esp + 0x2c]
mov dword [ebx + 0x48], eax
movzx esi, word [ecx + 0x400]
mov eax, esi
shr eax, 1
add eax, dword [ebx + 0x4c]
cdq
idiv esi
mov dword [ebx + 0x4c], eax
movzx esi, word [ecx + 0x3fe]
mov eax, esi
shr eax, 1
add eax, dword [ebx + 0x50]
cdq
idiv esi
mov dword [ebx + 0x50], eax
movzx esi, word [ecx + 0x400]
mov eax, esi
shr eax, 1
add eax, dword [ebx + 0x54]
cdq
idiv esi
mov dword [ebx + 0x54], eax
movzx esi, word [ecx + 0x3fe]
mov eax, esi
shr eax, 1
add eax, dword [ebx + 0x30]
cdq
idiv esi
mov dword [ebx + 0x30], eax
movzx esi, word [ecx + 0x400]
mov eax, esi
shr eax, 1
add eax, dword [ebx + 0x34]
cdq
idiv esi
mov dword [ebx + 0x34], eax
movzx esi, word [ecx + 0x3fe]
mov eax, esi
shr eax, 1
add eax, dword [ebx + 0x40]
cdq
idiv esi
mov dword [ebx + 0x40], eax
movzx esi, word [ecx + 0x400]
mov eax, esi
shr eax, 1
add eax, dword [ebx + 0x44]
cdq
idiv esi
mov dword [ebx + 0x44], eax
movzx esi, word [ecx + 0x3fe]
mov eax, esi
shr eax, 1
add eax, dword [ebx + 0x38]
cdq
idiv esi
mov dword [ebx + 0x38], eax
movzx esi, word [ecx + 0x400]
mov eax, esi
shr eax, 1
add eax, dword [ebx + 0x3c]
cdq
idiv esi
mov dword [ebx + 0x3c], eax
movzx esi, word [ecx + 0x3fe]
mov eax, esi
shr eax, 1
add eax, dword [ebx + 0xa8]
cdq
idiv esi
mov dword [ebx + 0xa8], eax
movzx esi, word [ecx + 0x400]
mov eax, esi
shr eax, 1
add eax, dword [ebx + 0xac]
cdq
idiv esi
mov dword [ebx + 0xac], eax
movzx esi, word [ecx + 0x3fe]
mov eax, esi
shr eax, 1
add eax, dword [ebx + 0xb0]
cdq
idiv esi
mov dword [ebx + 0xb0], eax
movzx esi, word [ecx + 0x400]
mov eax, esi
shr eax, 1
add eax, dword [ebx + 0xb4]
cdq
idiv esi
mov dword [ebx + 0xb4], eax
movzx esi, word [ecx + 0x3fe]
mov eax, esi
shr eax, 1
add eax, dword [ebx + 0x90]
cdq
idiv esi
mov dword [ebx + 0x90], eax
movzx esi, word [ecx + 0x400]
mov eax, esi
shr eax, 1
add eax, dword [ebx + 0x94]
cdq
idiv esi
mov dword [ebx + 0x94], eax
movzx esi, word [ecx + 0x3fe]
mov eax, esi
shr eax, 1
add eax, dword [ebx + 0xa0]
cdq
idiv esi
mov dword [ebx + 0xa0], eax
movzx esi, word [ecx + 0x400]
mov eax, esi
shr eax, 1
add eax, dword [ebx + 0xa4]
cdq
idiv esi
mov dword [ebx + 0xa4], eax
movzx esi, word [ecx + 0x3fe]
mov eax, esi
shr eax, 1
add eax, dword [ebx + 0x98]
cdq
idiv esi
mov dword [ebx + 0x98], eax
movzx ecx, word [ecx + 0x400]
mov eax, ecx
shr eax, 1
add eax, dword [ebx + 0x9c]
cdq
idiv ecx
mov edx, dword [esp + 0x2c]
mov dword [ebx + 0x9c], eax
jmp 0x40b942
mov ax, word [edi + 2]
mov word [ebx + 0x60], ax
mov ax, word [edi + 6]
mov word [ebx + 0x64], ax
mov ax, word [edx + 0x24c]
mov word [ebx + 0x5c], ax
jmp 0x40ba79
mov ax, word [edx + 0x254]
sub ax, word [edx + 0x250]
lea esi, [esp + 0x3c]
add ax, 3
and ax, 0xfffc
mov word [ebx + 0x5c], ax
movsx ecx, word [edx + 0x252]
cwde
mov dword [esp + 0x44], eax
movsx eax, word [edx + 0x24e]
sub eax, ecx
push eax
lea eax, [esp + 0x48]
call fcn.00406462
mov ecx, dword [eax]
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x2c]
mov dword [eax + 0x268], ecx
mov eax, dword [eax + 0x2b0]
mov dword [ebx + 0x20], eax
jmp 0x40ba8b
mov eax, dword [ebp + 8]
cmp dword [eax + 0x3c], 3
jne 0x40bacc
movsx ecx, word [ebx + 0x60]
movsx eax, word [ebx + 0x64]
mov edi, dword [esp + 0x2c]
sub eax, ecx
movzx ecx, word [edi + 0x3fe]
imul eax, ecx
call fcn.00443abe
mov word [ebx + 0x5c], ax
mov ax, word [edi + 0x250]
imul ax, word [edi + 0x3fe]
mov word [ebx + 0xc8], ax
mov ax, word [edi + 0x252]
mov word [ebx + 0xc6], ax
mov ax, word [edi + 0x254]
imul ax, word [edi + 0x3fe]
mov word [ebx + 0xcc], ax
mov cx, word [edi + 0x24e]
mov word [ebx + 0xca], cx
mov cx, word [ebx + 0x5c]
movsx eax, word [edi + 0x24e]
mov word [esi], cx
movsx ecx, word [ebx + 0x5c]
mov dword [esp + 0x44], ecx
movsx ecx, word [edi + 0x252]
sub eax, ecx
push eax
lea esi, [esp + 0x40]
lea eax, [esp + 0x48]
call fcn.00406462
mov eax, dword [eax]
mov esi, dword [esp + 0x2c]
mov dword [edi + 0x268], eax
mov eax, dword [esp + 0x2c]
push 9
add edi, 0x294
pop ecx
add esi, 0x24c
rep movsd dword es:[edi], dword [esi]
mov eax, dword [eax + 0x2b0]
mov dword [ebx + 0x14], eax
mov dword [ebx + 0x20], eax
jmp 0x40bacc
mov ax, word [ebx + 0x64]
sub ax, word [ebx + 0x60]
movsx edx, word [ebx + 0x5e]
add ax, 3
and ax, 0xfffc
movsx ecx, ax
mov word [ebx + 0x5c], ax
movsx eax, word [ebx + 0x62]
sub eax, edx
imul ecx
mov ecx, eax
add ecx, 0x80000000
adc edx, 0
test edx, edx
ja 0x42c4a3
jb 0x42cb0d
cmp ecx, 0xffffffff
ja 0x42c4a3
mov dword [ebx + 0x14], eax
jmp 0x40badd