Function at 0x439a7c
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xec
mov eax, dword [0x5153d4]
xor eax, esp
mov dword [esp + 0xe8], eax
push ebx
push esi
push edi
push 0x32
lea eax, [esp + 0xc4]
mov ebx, ecx
push 0
push eax
mov dword [esp + 0x94], ebx
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea eax, [esp + 0x30]
push 0x50
push 0
push eax
call sub.VCRUNTIME140.dll_memset
xor eax, eax
add esp, 0xc
mov dword [esp + 0x8c], eax
mov dword [esp + 0x94], eax
mov dword [esp + 0x90], eax
mov dword [esp + 0x84], eax
cmp ebx, 7
jne 0x43834f
mov edx, dword [0x6ef71e]
mov eax, 1
mov dword [esp + 0x8c], eax
mov ecx, edx
shr ecx, 5
mov ebx, edx
mov al, cl
shr ebx, 6
and al, 1
mov byte [0x6e7047], 0xff
mov byte [esp + 0x17], al
mov byte [0x6e7044], al
mov al, bl
and al, 1
mov byte [0x6e7045], al
mov eax, edx
shr eax, 8
mov dword [esp + 0xb8], eax
and al, 1
mov byte [0x6e7046], al
mov eax, edx
shr eax, 7
mov dword [esp + 0x2c], eax
and al, 1
mov byte [0x6e7048], al
test cl, 1
je 0x438307
test bl, 1
je 0x438307
test byte [esp + 0xb8], 1
je 0x438307
test byte [esp + 0x2c], 1
je 0x438307
shr edx, 9
and dl, 1
mov byte [0x6e7049], dl
jmp 0x43830e
mov byte [0x6e7049], 0xff
xor eax, eax
mov word [0x6e704c], ax
cmp byte [esp + 0x17], al
je 0x438339
xor edx, edx
nop
movsx eax, dx
lea ecx, [edx + 1]
mov word [0x6e704c], cx
movzx edx, cx
cmp byte [eax + 0x6e7045], 0
jne 0x438320
mov ebx, dword [esp + 0x88]
xor eax, eax
mov word [0x7ccc28], ax
mov dword [0x6e705c], eax
jmp 0x438387
cmp ebx, 2
jne 0x43837d
cmp word [0x6e7018], ax
jne 0x438382
or eax, 0xffffffff
mov word [0x6e6fd8], ax
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xe8]
xor ecx, esp
call fcn.004b557b
mov esp, ebp
pop ebp
ret
cmp ebx, 1
je 0x438387
call fcn.004a9740
mov ecx, dword [0x6e6fd4]
test ecx, ecx
je 0x4383a3
mov eax, dword [ecx]
test al, 1
je 0x4383a3
and eax, 0xfffffffe
dec word [0x7b7b9c]
mov dword [ecx], eax
mov ecx, 0x38e0
mov dword [0x6e6fd4], 0
call fcn.004019a0
mov dword [0x515488], ebx
mov dword [0x7ccc2c], 2
call fcn.00437f70
cmp dword [0x6f27ac], 0
je 0x4383f0
call fcn.004ab650
mov eax, 0x7b7ba8
nop
mov dword [eax], 0xffffffff
add eax, 0x10
cmp eax, 0x7b7da8
jl 0x4383e0
movss xmm2, dword [0x51077c]
cmp ebx, 1
je 0x438490
cmp ebx, 7
je 0x438490
movsx eax, word [0x515480]
movaps xmm0, xmm2
subss xmm0, dword [0x77335f]
imul eax, eax, 0x19
add eax, 5
movd xmm1, eax
cvtdq2ps xmm1, xmm1
mulss xmm1, xmm0
comiss xmm1, xmm2
jb 0x43843d
cvttss2si ecx, xmm1
call fcn.004ab690
jmp 0x438490
mov ecx, dword [0x7c2928]
test ecx, ecx
je 0x438490
cmp byte [0x7b78cf], 0
jne 0x438490
mov eax, dword [ecx]
lea edx, [esp + 0xb8]
push edx
push ecx
call dword [eax + 0x24]
test eax, eax
jne 0x438490
test byte [esp + 0xb8], 1
je 0x438490
mov eax, dword [0x7c2928]
push 0
push 0x517284
push eax
mov ecx, dword [eax]
call dword [ecx + 0x10]
mov eax, dword [0x7c2928]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x48]
mov byte [0x7b78cf], 1
mov ecx, 2
lea eax, [ebx - 1]
lea esi, [ecx + 1]
lea edx, [ecx - 1]
cmp eax, 6
ja case.0x4384a3.6
jmp dword [eax*4 + 0x43a1d4]
lea eax, [esp + 0xc0]
mov edx, ecx
push eax
movzx eax, word [0x6e7010]
lea ecx, [esp + 0x34]
push eax
movzx eax, word [0x6e7018]
push eax
push 0x5165c0
call fcn.0043cb20
add esp, 0x10
jmp 0x43854f
lea eax, [esp + 0xc0]
mov edx, esi
push eax
push 0
push 1
push 0x51661c
lea ecx, [esp + 0x40]
call fcn.0043cb20
add esp, 0x10
jmp 0x43854f
mov cx, word [0x515484]
test cx, cx
je case.0x4384a3.1
lea eax, [esp + 0xc0]
xor edx, edx
push eax
movzx eax, word [0x6e7010]
push eax
movzx eax, cx
push eax
push 0x516638
jmp 0x43853e
lea eax, [esp + 0xc0]
push eax
movzx eax, word [0x6e7004]
push eax
movzx eax, word [0x6e7008]
push eax
push 0x516620
lea ecx, [esp + 0x40]
call fcn.0043cb20
add esp, 0x10
cmp ebx, 1
je 0x43855e
xor edx, edx
push 2
lea ecx, [edx + 0x6f]
call fcn.00471b80
add esp, 4
mov ax, word [esp + 0x3e]
cmp ebx, 1
mov di, word [esp + 0x42]
mov word [esp + 0x12], ax
sete cl
movzx eax, word [esp + 0x3a]
mov dword [esp + 0x24], eax
mov ax, word [esp + 0x36]
mov word [esp + 0x14], ax
mov ax, word [esp + 0x34]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x30]
mov dword [0x7ccc2c], 2
mov byte [esp + 0x17], cl
mov word [esp + 0x10], di
mov dword [esp + 0x1c], eax
nop word [eax + eax]
mov byte [0x666dfd], cl
call fcn.00481f20
mov eax, dword [0x6e705c]
add eax, 0x10
movsx ecx, di
movzx eax, al
mov dword [0x6e705c], eax
mov eax, 0x10000
cdq
idiv ecx
mov byte [0x666dfd], 0
movzx esi, ax
mov eax, 0x2aaaaaab
movsx ecx, si
imul ecx
movsx ecx, si
sar edx, 2
mov eax, edx
mov word [esp + 0x44], si
shr eax, 0x1f
add eax, edx
mov word [esp + 0x48], ax
mov eax, 0xd5555555
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
mov word [esp + 0x4a], ax
call fcn.004a26a0
cmp dword [0x6e6ffc], 0
je 0x4386cb
cmp dword [0x748da4], 0
jne 0x439e87
mov ecx, dword [0x6e0e88]
cmp ecx, 0xe18
jge 0x439e63
mov eax, dword [0x6e0e8c]
mov eax, dword [eax + ecx*4]
mov dword [0x748da4], eax
cmp eax, 0xffffffff
je 0x439e6d
inc ecx
mov dword [0x6e0e88], ecx
mov ecx, dword [0x6e0e6c]
mov edx, dword [0x7ccc24]
mov esi, dword [0x515488]
not edx
and edx, eax
mov dword [0x7ccc24], eax
mov dword [0x6e7040], edx
cmp esi, 1
jne 0x4386de
test eax, eax
jne 0x4386de
test edx, edx
jne 0x4386de
cmp word [0x6e6b32], dx
jne 0x4386a5
test byte [0x6e6b58], 8
je 0x4386f2
inc ecx
mov dword [0x6e0e6c], ecx
cmp ecx, dword [0x6e6af8]
jle 0x4386f2
mov dword [esp + 0x94], 1
mov dword [0x6e0e70], 1
jmp 0x4386f2
mov eax, dword [0x748da4]
test eax, eax
je 0x438665
xor ecx, ecx
mov dword [0x6e0e6c], ecx
jmp 0x43866b
mov dword [0x6e0e6c], 0
mov dword [0x6e0e70], 0
cmp dword [0x773308], 0
jne 0x43a1b9
cmp esi, 3
je 0x43870e
cmp esi, 4
je 0x43870e
cmp esi, 5
jne 0x43872c
cmp dword [esp + 0x90], 0
jne 0x43872c
mov dword [0x6e7040], 0x100000
mov dword [0x748da4], 0
cmp esi, 7
jne 0x438763
cmp word [esp + 0x8c], 0
je 0x438763
mov eax, dword [esp + 0x7c]
cmp word [eax], 0
jne 0x438763
xor eax, eax
mov dword [0x6e7040], 0x100000
mov dword [0x748da4], 0
mov dword [esp + 0x8c], eax
mov ebx, dword [0x7ccc2c]
test ebx, ebx
jle 0x4387df
mov edi, dword [0x6e7020]
mov esi, dword [0x6e701c]
nop dword [eax]
test edi, edi
je 0x43878d
test esi, esi
je 0x43878b
dec esi
jmp 0x43878d
xor edi, edi
lea ecx, [esp + 0x30]
call fcn.0043c9d0
sub ebx, 1
jne 0x438780
mov ax, word [esp + 0x42]
mov word [esp + 0x10], ax
mov ax, word [esp + 0x3e]
mov word [esp + 0x12], ax
movzx eax, word [esp + 0x3a]
mov dword [esp + 0x24], eax
mov ax, word [esp + 0x36]
mov word [esp + 0x14], ax
mov ax, word [esp + 0x34]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x30]
mov dword [0x6e701c], esi
mov dword [0x6e7020], edi
mov dword [esp + 0x1c], eax
movsx edi, word [esp + 0x14]
xor cl, cl
add edi, 0x256
mov dword [esp + 0x66], edi
call fcn.004a8e10
mov eax, dword [0x515488]
cmp eax, 1
je 0x438817
cmp eax, 7
je 0x438817
mov edx, 0x50
push 0x70
mov ecx, edx
call fcn.004a9880
add esp, 4
jmp 0x43882f
xor dl, dl
xor cl, cl
call fcn.004a0470
movss xmm2, dword [0x54d1d8]
xor ecx, ecx
call fcn.004aa470
mov ecx, dword [0x7ccc2c]
mov dword [esp + 0x80], ecx
call fcn.004a8d00
mov esi, dword [esp + 0x5e]
lea eax, [esp + 0x9c]
mov ebx, dword [esp + 0x62]
mov edx, 0xffffffa0
push eax
mov ecx, esi
sub edx, ebx
push 0xfffffdaa
neg ecx
call fcn.00402120
mov eax, dword [esp + 0xa6]
lea ecx, [esp + 0xac]
add eax, dword [esp + 0x40]
mov word [esp + 0xb8], ax
mov ax, word [esp + 0xa4]
mov word [esp + 0xba], ax
xor eax, eax
mov dword [esp + 0xac], esi
mov dword [esp + 0xb0], ebx
mov dword [esp + 0xb4], edi
mov word [esp + 0xbc], ax
call fcn.004021c0
imul ecx, dword [0x54d980], 0x3000
mov eax, dword [0x54d97c]
mov ebx, dword [0x54d978]
shl eax, 0xe
mov esi, dword [0x54d988]
mov dword [esp + 0x34], ecx
sub ecx, eax
mov eax, ebx
mov dword [esp + 0xc0], ecx
shl eax, 0xe
add eax, ecx
shl ebx, 0xe
imul ecx, dword [0x54d990], 0x3000
sar eax, 0xe
mov dword [0x748ee8], eax
mov eax, dword [0x54d98c]
shl eax, 0xe
mov edi, ecx
mov dword [esp + 0x30], ecx
imul ecx, dword [0x54d9a0], 0x3000
sub edi, eax
mov eax, esi
mov dword [0x748f18], 0xcf0
shl eax, 0xe
add eax, edi
shl esi, 0xe
sar eax, 0xe
sub edi, esi
mov dword [0x748eec], eax
mov edx, ecx
mov eax, dword [0x54d99c]
shl eax, 0xe
sub edx, eax
mov dword [esp + 0x28], ecx
mov ecx, dword [0x54d998]
mov eax, ecx
shl eax, 0xe
add eax, edx
mov dword [0x748f28], 0x680
sar eax, 0xe
mov dword [0x748ef0], eax
mov eax, dword [esp + 0xc0]
sub eax, ebx
mov dword [0x748f38], 0
sar eax, 0xe
mov dword [0x748f1c], 0xcf0
mov dword [0x748f2c], 0xcf0
mov dword [0x748f3c], 0xcf0
mov dword [0x748f20], 0
mov dword [0x748f30], 0
mov dword [0x748f40], 0xc00
mov dword [0x748f14], 0x20
mov dword [0x748f10], 0x20
mov dword [0x748f0c], 0x20
mov dword [0x748ef4], eax
sar edi, 0xe
mov eax, dword [0x54d97c]
shl eax, 0xd
add eax, dword [esp + 0x34]
sar eax, 0xe
mov dword [0x748f00], eax
mov eax, dword [0x54d98c]
shl eax, 0xd
add eax, dword [esp + 0x30]
sar eax, 0xe
mov dword [0x748f04], eax
mov eax, dword [0x54d99c]
shl eax, 0xd
add eax, dword [esp + 0x28]
mov dword [0x748ef8], edi
sar eax, 0xe
mov dword [0x748f08], eax
mov eax, dword [0x54d9a8]
lea ebx, [eax + 0x30]
shl ecx, 0xe
sub edx, ecx
mov esi, dword [esp + 0x58]
sub esi, dword [0x54d994]
mov edi, dword [esp + 0x54]
sub edi, dword [0x54d984]
sar edx, 0xe
mov dword [0x748efc], edx
movups xmm0, xmmword [eax]
mov edx, dword [esp + 0x5c]
sub edx, dword [0x54d9a4]
movups xmmword [ebx], xmm0
mov dword [esp + 0x28], ebx
movups xmm0, xmmword [eax + 0x10]
mov dword [0x54d9a8], ebx
push dword [esp + 0x64]
movups xmmword [ebx + 0x10], xmm0
movups xmm0, xmmword [eax + 0x20]
movups xmmword [ebx + 0x20], xmm0
mov ecx, dword [ebx + 8]
mov eax, dword [ebx + 4]
imul ecx, edx
imul eax, esi
add ecx, eax
mov eax, dword [ebx]
imul eax, edi
add ecx, eax
mov eax, dword [ebx + 0x14]
mov dword [ebx + 0xc], ecx
mov ecx, dword [ebx + 0x18]
imul ecx, edx
imul eax, esi
add ecx, eax
mov eax, dword [ebx + 0x10]
imul eax, edi
add ecx, eax
mov eax, dword [ebx + 0x24]
mov dword [ebx + 0x1c], ecx
mov ecx, dword [ebx + 0x28]
imul ecx, edx
mov edx, dword [esp + 0x64]
imul eax, esi
add ecx, eax
mov eax, dword [ebx + 0x20]
imul eax, edi
mov edi, ebx
add ecx, eax
mov dword [edi + 0x2c], ecx
mov ecx, dword [esp + 0x66]
call fcn.00401420
xor ecx, ecx
mov dword [esp + 0x38], 0
xor eax, eax
mov dword [esp + 0xc4], ecx
add esp, 0xc
cmp ax, word [esp + 0x10]
jge 0x439026
mov edx, dword [esp + 0x44]
mov esi, dword [esp + 0x80]
mov dword [esp + 0x28], edx
nop dword [eax]
mov eax, dword [esp + 0x1c]
mov ebx, dword [eax + ecx*4]
mov ax, word [esp + 0x12]
cwde
mov dword [esp + 0xbc], ebx
cmp ecx, eax
jne 0x438c6b
mov edx, dword [0x748da4]
mov ax, word [esp + 0xc2]
mov dword [esp + 0x18], edx
test esi, esi
jle 0x438c27
lea ecx, [ebx + 0x20]
mov edi, ecx
nop dword [eax + eax]
cmp word [esp + 0x24], 0
je 0x438b73
movzx ecx, word [ebx + 0x20]
test cx, cx
je 0x438b6b
lea eax, [ecx + 0x200]
js 0x438b5f
lea eax, [ecx - 0x200]
mov word [ebx + 0x20], ax
mov ax, word [esp + 0xc2]
lea edi, [ebx + 0x20]
jmp 0x438c10
cmp ax, 8
je 0x438bba
mov edi, ecx
cmp ax, 9
je 0x438bba
cmp ax, 7
je 0x438bba
cmp ax, 0xa
je 0x438bba
cmp ax, 0xb
je 0x438bba
cmp word [esp + 0x10], 1
je 0x438ba5
test dl, 0xc
je 0x438ba5
lea edi, [ebx + 0x20]
jmp 0x438c13
mov eax, 0x100
lea edi, [ebx + 0x20]
add word [edi], ax
mov ax, word [esp + 0xc2]
jmp 0x438c13
movzx edx, word [edi]
movzx ecx, word [ebx + 0x1e]
mov dword [esp + 0x98], edx
cmp dx, cx
je 0x438c0c
movsx eax, dx
movsx esi, cx
sub esi, eax
mov eax, edx
dec esi
lea ecx, [eax - 0x400]
add eax, 0x400
movzx edx, ax
cmp esi, 0x7ffe
mov esi, dword [esp + 0x80]
movzx eax, cx
cmova edx, eax
movzx eax, dx
and eax, 0xfffffc00
mov word [edi], ax
mov ax, word [esp + 0xc2]
mov edx, dword [esp + 0x18]
lea ecx, [ebx + 0x20]
sub esi, 1
mov dword [esp + 0x80], esi
jne 0x438b40
mov edi, dword [esp + 0x20]
cmp ax, 1
je 0x438c4b
cmp ax, 7
je 0x438c4b
cmp ax, 8
je 0x438c4b
cmp ax, 9
je 0x438c4b
cmp ax, 0xa
je 0x438c4b
cmp ax, 0xb
jne 0x438c97
cmp word [esp + 0x24], 0
jne 0x438c97
test dl, 0xc
jne 0x438c97
mov ecx, ebx
call fcn.0043d0e0
mov edi, dword [0x54d9a8]
mov dword [esp + 0x20], edi
jmp 0x438c8f
test esi, esi
jle 0x438c8f
movzx eax, word [ebx + 0x20]
test ax, ax
je 0x438c86
jns 0x438c81
add eax, 0x100
jmp 0x438c86
sub eax, 0x100
sub esi, 1
jne 0x438c73
mov word [ebx + 0x20], ax
mov ax, word [esp + 0xc2]
cmp ax, 1
je 0x438e0f
cmp ax, 7
je 0x438e0f
cmp ax, 8
je 0x438e0f
cmp ax, 9
je 0x438e0f
cmp ax, 0xa
je 0x438e0f
cmp ax, 0xb
je 0x438e0f
mov edx, dword [0x6e7034]
test edx, edx
je 0x438d03
mov ecx, dword [edx]
test cl, 1
je 0x438d03
and ecx, 0xfffffffe
mov dword [edx], ecx
mov cx, word [0x7b7b9c]
mov ax, word [esp + 0xc2]
dec cx
mov word [0x7b7b9c], cx
jmp 0x438d0a
mov cx, word [0x7b7b9c]
mov esi, dword [0x6e7038]
mov dword [0x6e7034], 0
test esi, esi
je 0x438d3b
mov edx, dword [esi]
test dl, 1
je 0x438d3b
and edx, 0xfffffffe
dec cx
mov dword [esi], edx
mov ax, word [esp + 0xc2]
mov word [0x7b7b9c], cx
mov esi, dword [0x6e7030]
mov dword [0x6e7038], 0
test esi, esi
je 0x438d6c
mov edx, dword [esi]
test dl, 1
je 0x438d6c
and edx, 0xfffffffe
dec cx
mov dword [esi], edx
mov ax, word [esp + 0xc2]
mov word [0x7b7b9c], cx
mov esi, dword [0x6e702c]
mov dword [0x6e7030], 0
test esi, esi
je 0x438d9d
mov edx, dword [esi]
test dl, 1
je 0x438d9d
and edx, 0xfffffffe
dec cx
mov dword [esi], edx
mov ax, word [esp + 0xc2]
mov word [0x7b7b9c], cx
mov esi, dword [0x6e7028]
mov dword [0x6e702c], 0
test esi, esi
je 0x438dce
mov edx, dword [esi]
test dl, 1
je 0x438dce
and edx, 0xfffffffe
dec cx
mov dword [esi], edx
mov ax, word [esp + 0xc2]
mov word [0x7b7b9c], cx
mov esi, dword [0x6e7024]
mov dword [0x6e7028], 0
test esi, esi
je 0x438dff
mov edx, dword [esi]
test dl, 1
je 0x438dff
and edx, 0xfffffffe
dec cx
mov dword [esi], edx
mov ax, word [esp + 0xc2]
mov word [0x7b7b9c], cx
mov edx, dword [esp + 0x24]
mov dword [0x6e7024], 0
jmp 0x438e5e
lea ecx, [esp + 0x30]
call fcn.0043cf60
mov ecx, dword [esp + 0x44]
movzx edx, word [esp + 0x3a]
mov ax, word [esp + 0xc2]
mov dword [esp + 0x28], ecx
mov cx, word [esp + 0x42]
mov word [esp + 0x10], cx
mov cx, word [esp + 0x3e]
mov word [esp + 0x12], cx
mov cx, word [esp + 0x36]
mov word [esp + 0x14], cx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x1c], ecx
mov cx, word [0x7b7b9c]
mov dword [esp + 0x24], edx
test ax, ax
je 0x438e86
cmp ax, 2
je 0x438e86
cmp ax, 3
je 0x438e86
cmp ax, 6
je 0x438e86
cmp ax, 0xc
je 0x438e86
cmp ax, 0xd
je 0x438e86
test dx, dx
je 0x438ed6
mov edx, dword [0x6e7060]
test edx, edx
je 0x438ea4
mov eax, dword [edx]
test al, 1
je 0x438ea4
and eax, 0xfffffffe
dec cx
mov dword [edx], eax
mov word [0x7b7b9c], cx
mov edx, dword [0x6e7064]
mov dword [0x6e7060], 0
test edx, edx
je 0x438ecc
mov eax, dword [edx]
test al, 1
je 0x438ecc
and eax, 0xfffffffe
dec cx
mov dword [edx], eax
mov word [0x7b7b9c], cx
mov dword [0x6e7064], 0
movups xmm0, xmmword [edi]
mov esi, dword [esp + 0x2c]
lea ecx, [edi + 0x30]
mov dword [0x54d9a8], ecx
movups xmmword [ecx], xmm0
movups xmm0, xmmword [edi + 0x10]
movups xmmword [ecx + 0x10], xmm0
movups xmm0, xmmword [edi + 0x20]
movups xmmword [ecx + 0x20], xmm0
test si, si
je 0x438faa
mov edx, dword [ecx + 8]
mov eax, esi
shr eax, 3
mov esi, edx
and eax, 0x1ffe
movsx ebx, word [eax*2 + 0x4b95b0]
movsx edi, word [eax*2 + 0x4b95b2]
shl ebx, 2
shl edi, 2
mov eax, ebx
imul eax, dword [ecx]
imul esi, edi
imul edx, ebx
add esi, eax
mov eax, edi
imul eax, dword [ecx]
mov ecx, dword [esp + 0x20]
sar esi, 0xe
sub eax, edx
mov dword [ecx + 0x38], esi
mov esi, dword [ecx + 0x48]
mov edx, dword [ecx + 0x40]
sar eax, 0xe
mov dword [ecx + 0x30], eax
mov ecx, edx
imul ecx, edi
mov eax, esi
imul eax, ebx
imul edx, ebx
imul esi, edi
sub ecx, eax
mov eax, dword [esp + 0x20]
sar ecx, 0xe
add edx, esi
sar edx, 0xe
mov esi, dword [eax + 0x58]
mov dword [eax + 0x48], edx
mov edx, dword [eax + 0x50]
mov dword [eax + 0x40], ecx
mov ecx, edx
mov eax, esi
imul ecx, edi
imul eax, ebx
imul edx, ebx
mov ebx, dword [esp + 0xbc]
imul esi, edi
sub ecx, eax
mov eax, dword [esp + 0x20]
sar ecx, 0xe
add edx, esi
mov esi, dword [esp + 0x2c]
sar edx, 0xe
mov dword [eax + 0x50], ecx
mov dword [eax + 0x58], edx
movsx ecx, word [esp + 0x14]
xor edx, edx
push 0
call fcn.00401870
mov dx, word [ebx + 0x16]
add esp, 4
mov ecx, 0x4000
push 0
call fcn.00401420
add esp, 4
mov ecx, ebx
call fcn.00437850
mov ecx, dword [esp + 0xb8]
mov edi, dword [0x54d9a8]
inc ecx
mov ax, word [esp + 0x10]
add edi, 0xffffffd0
add esi, dword [esp + 0x28]
cwde
mov dword [esp + 0x20], edi
mov dword [0x54d9a8], edi
mov dword [esp + 0x2c], esi
mov dword [esp + 0xb8], ecx
cmp ecx, eax
jge 0x43901b
mov esi, dword [0x7ccc2c]
mov dword [esp + 0x80], esi
jmp 0x438b00
mov ax, word [esp + 0x34]
mov dword [esp + 0x18], eax
jmp 0x43902e
mov eax, dword [esp + 0x44]
mov dword [esp + 0x28], eax
mov ecx, dword [0x7b78c4]
lea eax, [edi - 0x30]
mov dword [0x54d9a8], eax
test ecx, ecx
je 0x439065
sub dword [0x7b78c8], 1
jne 0x439065
mov eax, dword [ecx]
test al, 1
je 0x43905b
and eax, 0xfffffffe
dec word [0x7b7b9c]
mov dword [ecx], eax
mov dword [0x7b78c4], 0
mov esi, 0x7b7da8
mov edi, 0x40
nop
test esi, esi
je 0x439080
test byte [esi], 1
je 0x439080
mov ecx, esi
call fcn.00475f90
add esi, 0x3c
sub edi, 1
jne 0x439070
call fcn.004a8700
call fcn.00471900
call fcn.004a8c10
mov ebx, eax
mov dword [0x7ccc2c], ebx
mov dword [0x6e0d04], ebx
cmp dword [0x6e0d80], edi
je 0x4390b8
cdq
sub eax, edx
sar eax, 1
add dword [0x6ef6e7], eax
cmp word [esp + 0x24], 0
jne case.0x4390d6.2
movsx eax, word [esp + 0xc2]
dec eax
cmp eax, 0xb
ja case.0x4390d6.2
jmp dword [eax*4 + 0x43a1f0]
mov eax, dword [0x748da4]
mov di, word [esp + 0x10]
test al, 8
je 0x439140
cmp di, 1
jle 0x439140
mov eax, dword [esp + 0x3e]
mov ebx, 1
dec eax
mov dword [esp + 0x24], ebx
mov word [esp + 0x3a], bx
mov word [esp + 0x40], ax
test ax, ax
jns 0x439118
mov eax, dword [esp + 0x42]
dec eax
mov word [esp + 0x40], ax
mov eax, 0x18
xor edx, edx
mov word [esp + 0x3c], ax
mov ax, word [esp + 0x48]
push 2
lea ecx, [edx + 0x6c]
mov word [esp + 0x4a], ax
call fcn.00471b80
add esp, 4
jmp 0x4394a1
test al, 4
je 0x439196
cmp di, 1
jle 0x439196
mov eax, dword [esp + 0x3e]
mov ebx, 1
inc eax
mov dword [esp + 0x24], ebx
mov word [esp + 0x3a], bx
mov word [esp + 0x40], ax
cmp ax, di
jl 0x43916e
xor eax, eax
mov word [esp + 0x40], ax
mov eax, 0x18
xor edx, edx
mov word [esp + 0x3c], ax
mov ax, word [esp + 0x4a]
push 2
lea ecx, [edx + 0x6c]
mov word [esp + 0x4a], ax
call fcn.00471b80
add esp, 4
jmp 0x43949c
cmp dword [0x6e0e70], 0
jne 0x4391c9
mov ecx, dword [0x6e7040]
test ecx, 0x200100
je 0x4391bc
mov eax, dword [0x515488]
cmp eax, 1
je 0x4391bc
cmp eax, 7
jne 0x4391c9
mov esi, dword [esp + 0x7c]
mov ebx, dword [esp + 0x18]
jmp 0x439268
xor edx, edx
push 2
lea ecx, [edx + 0x70]
call fcn.00471b80
mov ebx, dword [esp + 0x1c]
or eax, 0xffffffff
add esp, 4
mov word [0x6e6fd8], ax
mov ax, word [esp + 0x12]
test bx, bx
je 0x4391f7
mov word [0x6e7004], ax
jmp 0x4391fd
mov word [0x6e7010], ax
mov esi, dword [esp + 0x7c]
xor eax, eax
mov dword [0x748da4], 0
mov word [esi + 0xc], ax
mov ax, word [esp + 0x14]
cwde
cdq
mov dword [esi], 0x20020
mov dword [esi + 4], 0xd
mov dword [esi + 8], 0xfa000000
movsx ecx, word [esi]
idiv ecx
neg eax
mov word [esi + 8], ax
mov eax, 0xfffffa00
sub eax, dword [esp + 0x62]
cdq
idiv ecx
mov word [esi + 0xc], ax
mov eax, dword [esp + 0x5a]
add eax, 0xffff8000
mov word [esi + 0x12], ax
mov eax, 0xffff8000
cdq
idiv ecx
xor ecx, ecx
mov word [esi + 0x14], ax
mov dword [0x6e7040], ecx
test ecx, 0x100000
je 0x4393e6
mov eax, dword [0x515488]
cmp eax, 3
je 0x439288
cmp eax, 4
je 0x439288
cmp eax, 5
jne 0x4392a2
mov eax, dword [esp + 0x90]
mov ecx, 1
test eax, eax
cmove eax, ecx
mov dword [esp + 0x90], eax
jmp 0x4392a7
mov ecx, 1
xor eax, eax
mov word [0x6e7000], ax
mov ax, word [esp + 0x12]
test bx, bx
jne 0x4392c9
mov word [0x6e7010], ax
cwde
mov edi, dword [eax*4 + 0x516638]
jmp 0x439303
cmp bx, 1
jne 0x4392df
mov word [0x6e7004], ax
cwde
mov edi, dword [eax*4 + 0x516620]
jmp 0x439303
cmp bx, 3
jne 0x4392f5
mov word [0x6e7004], ax
cwde
mov edi, dword [eax*4 + 0x51661c]
jmp 0x439303
mov word [0x6e7014], ax
cwde
mov edi, dword [eax*4 + 0x5165c0]
movzx eax, word [edi + 0xc]
mov word [edi + 0xa], ax
mov eax, 8
mov edx, dword [esp + 0x28]
imul edx, dword [esp + 0x3e]
mov ebx, dword [esp + 0x7c]
mov word [edi + 0xe], cx
mov word [esi + 4], ax
xor eax, eax
mov word [esi + 8], ax
mov word [esi + 0xc], ax
mov eax, 0xffffc000
sub eax, edx
mov dword [esi], 0x70010
mov word [esi + 0x12], ax
xor eax, eax
movsx esi, word [esi]
mov word [ebx + 0x14], ax
movzx eax, word [edi + 0x14]
mov word [ebx + 0x16], ax
movsx eax, word [edi + 0x14]
cdq
idiv esi
mov dword [0x748da4], 0
mov word [ebx + 0x18], ax
movzx eax, word [edi + 0x18]
mov word [ebx + 0x1a], ax
movsx ecx, word [edi + 0x1a]
movsx eax, word [edi + 0x18]
sub eax, ecx
mov dword [0x6e7040], 0
cdq
idiv esi
mov word [ebx + 0x1c], ax
mov eax, dword [edi + 0x22]
mov dword [ebx + 0x1e], eax
mov eax, dword [edi + 0x22]
cdq
idiv esi
mov dword [ebx + 0x22], eax
mov eax, dword [edi + 0x2a]
mov dword [ebx + 0x26], eax
mov eax, dword [edi + 0x2a]
cdq
idiv esi
mov esi, ebx
mov edx, 0x92
mov dword [esi + 0x2a], eax
movzx eax, word [edi + 4]
mov ecx, eax
cmp ax, dx
jne 0x4393be
lea ecx, [edx - 0x21]
jmp 0x4393d4
lea eax, [ecx - 0xb9]
mov ecx, 0x72
cmp ax, 7
jbe 0x4393d4
mov ecx, 0x6d
push 2
xor edx, edx
call fcn.00471b80
mov ecx, dword [0x6e7040]
add esp, 4
mov eax, dword [esp + 0x88]
test cl, 1
je 0x43952a
cmp eax, 1
je 0x43952a
cmp eax, 7
je 0x43952a
cmp eax, 2
je 0x43952a
mov eax, dword [esp + 0x18]
test ax, ax
jne 0x4394b9
cmp word [0x6e7018], ax
je 0x439483
xor eax, eax
mov dword [esi], 0x20018
mov word [esi + 8], ax
mov ax, word [esp + 0x14]
cwde
cdq
mov dword [esi + 4], 4
mov dword [esi + 0xc], 0x20000000
movsx ecx, word [esi]
idiv ecx
neg eax
mov word [esi + 8], ax
mov eax, dword [esp + 0x5a]
add eax, 0xffff8000
mov word [esi + 0x12], ax
mov eax, 0xffff8000
cdq
idiv ecx
mov word [esi + 0x14], ax
mov eax, 0x2000
cdq
idiv ecx
mov word [esi + 0x10], ax
mov dword [esp + 0xee], 0x2000
mov dword [0x748da4], 0
mov dword [0x6e7040], 0
mov di, word [esp + 0x10]
mov ebx, 1
cmp word [esp + 0xc2], 0xd
je 0x439ea1
mov cl, byte [esp + 0x17]
jmp 0x4385b0
cmp ax, 1
jne case.0x4390d6.2
cmp word [0x515484], 0
je 0x43948d
xor eax, eax
mov dword [esi], 0x20018
mov word [esi + 8], ax
mov ax, word [esp + 0x14]
cwde
cdq
mov dword [esi + 4], 6
mov dword [esi + 0xc], 0x20000000
movsx ecx, word [esi]
idiv ecx
neg eax
mov word [esi + 8], ax
mov eax, dword [esp + 0x5a]
add eax, 0xffff8000
mov word [esi + 0x12], ax
mov eax, 0xffff8000
cdq
idiv ecx
mov word [esi + 0x14], ax
mov eax, 0x2000
cdq
idiv ecx
mov word [esi + 0x10], ax
mov dword [esp + 0xee], 0x2000
jmp 0x43948d
test cl, 2
je case.0x4390d6.2
cmp eax, 1
je case.0x4390d6.2
cmp eax, 7
je case.0x4390d6.2
cmp eax, 2
je case.0x4390d6.2
mov eax, dword [esp + 0x18]
cmp ax, 2
jne 0x4395c7
cmp word [0x515484], 0
je 0x439483
xor eax, eax
mov dword [esi], 0x20018
mov word [esi + 8], ax
mov ax, word [esp + 0x14]
cwde
cdq
mov dword [esi + 4], 5
mov dword [esi + 0xc], 0xe0000000
movsx ecx, word [esi]
idiv ecx
neg eax
mov word [esi + 8], ax
mov eax, dword [esp + 0x5a]
add eax, 0xffff8000
mov word [esi + 0x12], ax
mov eax, 0xffff8000
cdq
idiv ecx
mov word [esi + 0x14], ax
mov eax, 0xffffe000
cdq
idiv ecx
mov word [esi + 0x10], ax
mov dword [esp + 0xee], 0xffffe000
jmp 0x439483
test ax, ax
jne case.0x4390d6.2
cmp word [0x6e7008], ax
je 0x43948d
test byte [0x6e6b58], 0x40
jne 0x43948d
xor eax, eax
mov dword [esi], 0x20018
mov word [esi + 8], ax
mov ax, word [esp + 0x14]
cwde
cdq
mov dword [esi + 4], 3
mov dword [esi + 0xc], 0xe0000000
movsx ecx, word [esi]
idiv ecx
neg eax
mov word [esi + 8], ax
mov eax, dword [esp + 0x5a]
add eax, 0xffff8000
mov word [esi + 0x12], ax
mov eax, 0xffff8000
cdq
idiv ecx
mov word [esi + 0x14], ax
mov eax, 0xffffe000
cdq
idiv ecx
mov word [esi + 0x10], ax
mov dword [esp + 0xee], 0xffffe000
jmp 0x43948d
mov ebx, dword [esp + 0x7c]
xor eax, eax
movsx ecx, word [esp + 0x14]
mov edx, 0x2b0
mov esi, 1
mov edi, esi
mov word [ebx + 8], ax
mov word [ebx + 0xc], ax
mov eax, edx
sub eax, ecx
mov dword [ebx], 0x18
cdq
mov dword [ebx + 4], 0x2b00001
movsx ecx, word [ebx]
idiv ecx
mov dword [esp + 0x18], edi
mov word [ebx + 8], ax
mov eax, dword [esp + 0xee]
neg eax
mov word [esp + 0x34], di
mov word [esp + 0x38], ax
mov eax, 0x2aaaaaab
imul dword [esp + 0xee]
mov di, word [0x6e7008]
sar edx, 2
mov eax, edx
movsx ecx, di
shr eax, 0x1f
add eax, edx
mov word [esp + 0x10], di
mov word [esp + 0xd0], ax
xor eax, eax
mov word [esp + 0xce], ax
mov eax, 0x516620
mov dword [esp + 0x1c], eax
mov dword [esp + 0x30], eax
mov ax, word [esp + 0x12]
mov word [0x6e7010], ax
mov ax, word [0x6e7004]
mov word [esp + 0x12], ax
mov word [esp + 0x3e], ax
mov eax, 0x10000
cdq
idiv ecx
mov word [esp + 0x42], di
movzx esi, ax
mov eax, 0x2aaaaaab
movsx ecx, si
imul ecx
movsx ecx, si
sar edx, 2
mov eax, edx
mov word [esp + 0x44], si
shr eax, 0x1f
add eax, edx
mov word [esp + 0x48], ax
mov eax, 0xd5555555
imul ecx
movsx ecx, si
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
mov word [esp + 0x4a], ax
mov ax, word [esp + 0x12]
cwde
imul ecx, eax
mov eax, 0xffffc000
sub ax, cx
movsx ecx, word [ebx]
mov word [ebx + 0x12], ax
mov eax, 0xffff8000
cdq
idiv ecx
mov word [ebx + 0x14], ax
mov eax, dword [esp + 0xd2]
add eax, 0xffff8000
mov word [esp + 0x5a], ax
jmp 0x43949c
mov ebx, dword [esp + 0x7c]
xor eax, eax
movsx ecx, word [esp + 0x14]
mov edx, 0x2b0
mov edi, 2
mov dword [esp + 0x18], edi
mov word [ebx + 8], ax
mov word [ebx + 0xc], ax
mov eax, edx
sub eax, ecx
mov dword [ebx], 0x18
cdq
mov dword [ebx + 4], 0x2b00001
movsx ecx, word [ebx]
idiv ecx
mov word [esp + 0x34], di
mov word [ebx + 8], ax
xor eax, eax
mov word [esp + 0xce], ax
mov eax, dword [esp + 0xee]
neg eax
mov di, word [0x6e7018]
mov word [esp + 0x38], ax
mov eax, 0x2aaaaaab
imul dword [esp + 0xee]
movsx ecx, di
sar edx, 2
mov eax, edx
mov word [esp + 0x42], di
shr eax, 0x1f
add eax, edx
mov word [esp + 0xd0], ax
mov ax, word [esp + 0x12]
mov word [0x6e7010], ax
mov ax, word [esp + 0x10]
mov word [0x515484], ax
mov eax, 0x5165c0
mov dword [esp + 0x1c], eax
mov dword [esp + 0x30], eax
mov ax, word [0x6e7014]
mov word [esp + 0x12], ax
mov word [esp + 0x3e], ax
mov eax, 0x10000
cdq
idiv ecx
mov word [esp + 0x10], di
movzx esi, ax
mov eax, 0x2aaaaaab
movsx ecx, si
imul ecx
movsx ecx, si
sar edx, 2
mov eax, edx
mov word [esp + 0x44], si
shr eax, 0x1f
add eax, edx
mov word [esp + 0x48], ax
mov eax, 0xd5555555
imul ecx
movsx ecx, si
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
mov word [esp + 0x4a], ax
mov ax, word [esp + 0x12]
cwde
imul ecx, eax
mov eax, 0xffffc000
sub ax, cx
movsx ecx, word [ebx]
mov word [ebx + 0x12], ax
mov eax, 0xffff8000
cdq
idiv ecx
mov word [ebx + 0x14], ax
mov eax, dword [esp + 0xd2]
add eax, 0xffff8000
mov word [esp + 0x5a], ax
jmp 0x43949c
mov ebx, dword [esp + 0x7c]
xor eax, eax
movsx ecx, word [esp + 0x14]
mov edx, 0x2b0
mov word [ebx + 8], ax
mov word [ebx + 0xc], ax
mov eax, edx
sub eax, ecx
mov dword [ebx], 0x18
cdq
mov dword [ebx + 4], 0x2b00001
movsx ecx, word [ebx]
idiv ecx
mov word [ebx + 8], ax
mov eax, dword [esp + 0xee]
neg eax
mov word [esp + 0x38], ax
mov eax, 0x2aaaaaab
imul dword [esp + 0xee]
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
mov word [esp + 0xd0], ax
xor eax, eax
mov word [esp + 0xce], ax
mov eax, 0x516638
mov dword [esp + 0x1c], eax
mov dword [esp + 0x30], eax
mov ax, word [esp + 0x12]
mov word [0x6e7014], ax
mov ax, word [0x6e7010]
xor edi, edi
mov word [esp + 0x12], ax
mov word [esp + 0x3e], ax
mov eax, 0x10000
cdq
mov word [esp + 0x34], di
mov dword [esp + 0x18], edi
mov di, word [0x515484]
movsx ecx, di
idiv ecx
mov word [esp + 0x10], di
movzx esi, ax
mov eax, 0x2aaaaaab
movsx ecx, si
imul ecx
movsx ecx, si
sar edx, 2
mov eax, edx
mov word [esp + 0x42], di
shr eax, 0x1f
add eax, edx
mov word [esp + 0x44], si
mov word [esp + 0x48], ax
mov eax, 0xd5555555
imul ecx
movsx ecx, si
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
mov word [esp + 0x4a], ax
mov ax, word [esp + 0x12]
cwde
imul ecx, eax
mov eax, 0xffffc000
sub ax, cx
mov word [ebx + 0x12], ax
mov eax, 0xffff8000
movsx ecx, word [ebx]
cdq
idiv ecx
mov word [ebx + 0x14], ax
mov eax, dword [esp + 0xd2]
add eax, 0xffff8000
mov word [esp + 0x5a], ax
jmp 0x43949c
mov ebx, dword [esp + 0x7c]
xor eax, eax
movsx ecx, word [esp + 0x14]
mov edx, 0x2b0
mov word [ebx + 8], ax
mov word [ebx + 0xc], ax
mov eax, edx
sub eax, ecx
mov dword [ebx], 0x18
cdq
mov dword [ebx + 4], 0x2b00001
movsx ecx, word [ebx]
idiv ecx
mov word [ebx + 8], ax
mov eax, dword [esp + 0xee]
neg eax
mov word [esp + 0x38], ax
mov eax, 0x2aaaaaab
imul dword [esp + 0xee]
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
mov word [esp + 0xd0], ax
mov ax, word [esp + 0x12]
mov word [0x6e7004], ax
mov ax, word [esp + 0x10]
mov word [0x6e7008], ax
xor eax, eax
mov word [esp + 0xce], ax
mov eax, 0x516638
mov dword [esp + 0x1c], eax
mov dword [esp + 0x30], eax
jmp 0x43993d
mov di, word [esp + 0x12]
mov ecx, dword [esp + 0x1c]
movsx eax, di
mov esi, dword [ecx + eax*4]
mov eax, 0x9e
cmp word [esi + 4], ax
jne 0x439a9f
mov eax, 0x91
mov word [esi + 4], ax
test ebx, ebx
jle 0x439b3a
nop word [eax + eax]
mov ax, word [esi + 0x20]
mov dword [esp + 0x84], 0
cmp ax, word [esi + 0x1e]
jne 0x439b31
movzx ecx, word [esi + 8]
cmp cx, word [esi + 0xa]
jne 0x439ae3
mov ecx, esi
call fcn.004377a0
mov dword [esp + 0x84], 0
jmp 0x439b31
movzx eax, word [esi + 0x12]
test ax, ax
je 0x439af3
dec eax
mov word [esi + 0x12], ax
jmp 0x439b1f
movzx eax, word [esi + 0x10]
mov word [esi + 0x12], ax
mov ax, word [esi + 0xe]
add ax, cx
movzx ecx, word [esi + 6]
mov word [esi + 8], ax
cmp ax, cx
jl 0x439b13
xor eax, eax
jmp 0x439b1b
test ax, ax
jns 0x439b1f
lea eax, [ecx - 1]
mov word [esi + 8], ax
mov ecx, esi
call fcn.004377a0
mov dword [esp + 0x84], 1
sub ebx, 1
jne 0x439ab0
cmp dword [esp + 0x84], 0
jne case.0x4390d6.2
cmp dword [0x6e7020], 0
jne case.0x4390d6.2
mov ecx, esi
call fcn.004a6ec0
mov ecx, dword [0x6e7040]
mov ebx, dword [esp + 0x7c]
test ecx, 0x200000
je 0x439bc3
mov dword [esi + 0x3c], 0
mov eax, 0xa
mov word [ebx + 4], ax
xor ecx, ecx
xor eax, eax
mov dword [ebx], 0xb0000
mov word [ebx + 8], ax
mov word [ebx + 0xc], ax
mov dword [0x748da4], eax
mov eax, dword [0x515488]
mov dword [0x6e7040], ecx
cmp eax, 4
je 0x439baa
cmp eax, 3
jne 0x439bc3
mov eax, 0xc
mov dword [ebx], 0xb0000
mov word [ebx + 4], ax
xor eax, eax
mov word [ebx + 8], ax
mov word [ebx + 0xc], ax
test ecx, 0x100000
je case.0x4390d6.2
cmp word [esp + 0x18], 0
movzx eax, word [esi + 4]
mov dword [esi + 0x3c], 0
mov word [0x6e6fd8], ax
je 0x439bf1
mov word [0x6e7004], di
jmp 0x439bf8
mov word [0x6e7010], di
cmp dword [0x515488], 7
jne 0x439c3e
mov ecx, 0x91
cmp ax, cx
jne 0x439c1a
cmp word [0x7ccc28], 0
mov eax, 0xa
jne 0x439c1f
mov eax, 0xc
mov word [ebx + 4], ax
xor eax, eax
mov word [ebx + 8], ax
mov word [ebx + 0xc], ax
mov word [0x7ccc28], ax
mov dword [ebx], 0xb0000
jmp 0x439483
cmp dword [0x515488], 1
jne 0x439c51
mov ecx, 0xb5
cmp ax, cx
je 0x439c6a
mov ecx, 0xb6
cmp ax, cx
je 0x439c6a
mov ecx, 0xb7
cmp ax, cx
mov eax, 0xc
jne 0x439c6f
mov eax, 0xa
mov word [ebx + 4], ax
xor eax, eax
mov word [ebx + 8], ax
mov word [ebx + 0xc], ax
mov dword [ebx], 0xb0000
jmp 0x439483
xor edx, edx
push 2
lea ecx, [edx + 0x70]
call fcn.00471b80
mov ecx, dword [esp + 0x80]
xor eax, eax
mov edx, dword [esp + 0x2c]
mov ebx, 1
imul edx, dword [esp + 0x42]
add esp, 4
mov di, word [esp + 0x10]
mov word [ecx + 8], ax
mov word [ecx + 0xc], ax
mov eax, 0xffffc000
mov dword [ecx], 0x90010
sub eax, edx
mov word [ecx + 4], bx
mov word [ecx + 0x12], ax
xor eax, eax
mov word [ecx + 0x14], ax
mov dword [0x748da4], eax
mov dword [0x6e7040], eax
jmp 0x4394a1
mov ax, word [esp + 0x12]
xor esi, esi
mov ecx, dword [esp + 0x1c]
cwde
mov edi, dword [ecx + eax*4]
test ebx, ebx
jle case.0x4390d6.2
nop dword [eax]
movzx ecx, word [edi + 8]
cmp cx, word [edi + 0xa]
je 0x439d57
movzx eax, word [edi + 0x12]
test ax, ax
je 0x439d1a
dec eax
mov word [edi + 0x12], ax
jmp 0x439d46
movzx eax, word [edi + 0x10]
mov word [edi + 0x12], ax
mov ax, word [edi + 0xe]
add ax, cx
movzx ecx, word [edi + 6]
mov word [edi + 8], ax
cmp ax, cx
jl 0x439d3a
xor eax, eax
jmp 0x439d42
test ax, ax
jns 0x439d46
lea eax, [ecx - 1]
mov word [edi + 8], ax
mov ecx, edi
call fcn.004377a0
inc esi
cmp esi, ebx
jl 0x439d00
jmp case.0x4390d6.2
mov ecx, edi
call fcn.004377a0
mov eax, 0x91
cmp word [edi + 4], ax
jne 0x439d78
mov eax, 0x9e
mov word [edi + 4], ax
xor eax, eax
mov word [edi + 8], ax
mov ebx, dword [esp + 0x7c]
mov eax, 0x10
mov word [esp + 0xc0], ax
movzx eax, word [esp + 0xc4]
mov word [esp + 0xc2], ax
xor eax, eax
movsx esi, word [ebx]
mov word [ebx + 0x16], ax
movsx eax, word [edi + 0x14]
cdq
idiv esi
neg eax
mov word [ebx + 0x18], ax
movzx eax, word [edi + 0x1a]
mov word [ebx + 0x1a], ax
movsx ecx, word [edi + 0x18]
movsx eax, word [edi + 0x1a]
sub eax, ecx
mov dword [ebx + 0x1e], 0
cdq
idiv esi
mov word [ebx + 0x1c], ax
mov eax, dword [edi + 0x22]
cdq
idiv esi
mov dword [ebx + 0x26], 0
neg eax
mov dword [ebx + 0x22], eax
mov eax, dword [edi + 0x2a]
cdq
idiv esi
neg eax
mov dword [ebx + 0x2a], eax
jmp case.0x4390d6.2
cmp word [esp + 0xc0], 0
mov di, word [esp + 0x10]
jne 0x43949c
mov ebx, dword [esp + 0x7c]
xor eax, eax
mov word [ebx + 0xc], ax
mov ax, word [esp + 0x14]
cwde
cdq
mov dword [ebx], 0x20020
mov dword [ebx + 4], 0xd
mov dword [ebx + 8], 0xfa000000
movsx ecx, word [ebx]
idiv ecx
neg eax
mov word [ebx + 8], ax
mov eax, 0xfffffa00
sub eax, dword [esp + 0x62]
cdq
idiv ecx
mov word [ebx + 0xc], ax
mov eax, dword [esp + 0x5a]
add eax, 0xffff8000
mov word [ebx + 0x12], ax
mov eax, 0xffff8000
cdq
idiv ecx
mov word [ebx + 0x14], ax
jmp 0x43949c
mov dword [0x748da4], 0xffffffff
mov eax, dword [0x6e6b00]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xe8]
xor ecx, esp
call fcn.004b557b
mov esp, ebp
pop ebp
ret
mov eax, dword [0x6e6afc]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xe8]
xor ecx, esp
call fcn.004b557b
mov esp, ebp
pop ebp
ret
mov esi, dword [esp + 0x88]
cmp esi, 1
je 0x439eee
cmp esi, 7
je 0x439eee
mov eax, 0x91
cmp word [0x6e6fd8], ax
jne 0x439eda
cmp dword [0x6e6fdc], 1
je 0x439eda
mov dword [0x748f84], 1
call fcn.004a9010
jmp 0x439eee
mov ecx, 0x748f9c
call fcn.004a96a0
mov dword [0x748f84], 0
mov ecx, dword [0x6e7060]
test ecx, ecx
je 0x439f13
mov eax, dword [ecx]
test al, 1
je 0x439f13
and eax, 0xfffffffe
mov dword [ecx], eax
mov ax, word [0x7b7b9c]
dec ax
mov word [0x7b7b9c], ax
jmp 0x439f19
mov ax, word [0x7b7b9c]
mov edx, dword [0x6e7064]
mov dword [0x6e7060], 0
test edx, edx
je 0x439f41
mov ecx, dword [edx]
test cl, 1
je 0x439f41
and ecx, 0xfffffffe
dec ax
mov dword [edx], ecx
mov word [0x7b7b9c], ax
cmp dword [0x515488], 1
mov dword [0x6e7064], 0
je 0x439f85
movsd xmm0, qword [0x516af8]
movsd xmm1, qword [0x516af0]
ucomisd xmm0, xmm1
mov dword [0x6f45c0], 0
lahf
test ah, 0x44
jnp 0x439f85
movsd qword [0x516af8], xmm1
call fcn.00489de0
xor eax, eax
mov word [0x6e700c], ax
cmp dword [0x6e0e70], eax
jne 0x43a1b9
cmp dword [esp + 0x94], eax
je 0x439fbc
mov eax, 0x400
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xe8]
xor ecx, esp
call fcn.004b557b
mov esp, ebp
pop ebp
ret
cmp word [0x6e6fd8], 0xffff
jne 0x43a03a
cmp esi, 1
je 0x43a1a2
mov ax, word [0x515480]
test ax, ax
je 0x43a1a2
cmp dword [0x6e0d0c], 0
cwde
je 0x43a197
movss xmm0, dword [0x51077c]
subss xmm0, dword [0x77335b]
imul eax, eax, 0x19
add eax, 5
movd xmm1, eax
cvtdq2ps xmm1, xmm1
mulss xmm1, xmm0
comiss xmm1, dword [0x51077c]
jb 0x43a12d
cvttss2si ecx, xmm1
call fcn.004ab690
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xe8]
xor ecx, esp
call fcn.004b557b
mov esp, ebp
pop ebp
ret
movsx eax, word [0x6e6fd8]
add eax, 0xffffff6f
cmp eax, 0x3a
ja case.0x43a056.146
movzx eax, byte [eax + 0x43a230]
jmp dword [eax*4 + 0x43a220]
cmp dword [0x6e6fdc], 1
jne 0x43a080
mov cx, word [0x515480]
test cx, cx
je 0x43a080
movsx ecx, cx
imul ecx, ecx, 0x19
add ecx, 5
call fcn.004ab690
mov eax, ebx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xe8]
xor ecx, esp
call fcn.004b557b
mov esp, ebp
pop ebp
ret
test dword [0x6e6b58], 0x200
je case.0x43a056.146
mov dword [0x6e6fe0], 0
mov eax, ebx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xe8]
xor ecx, esp
call fcn.004b557b
mov esp, ebp
pop ebp
ret
mov cx, word [0x6e6fd8]
call fcn.00451370
cmp esi, 1
je 0x43a1a2
cmp esi, 7
je 0x43a1a2
mov ax, word [0x515480]
test ax, ax
je 0x43a1a2
cmp dword [0x6e0d0c], 0
cwde
je 0x43a197
movss xmm0, dword [0x51077c]
subss xmm0, dword [0x77335b]
imul eax, eax, 0x19
add eax, 5
movd xmm1, eax
cvtdq2ps xmm1, xmm1
mulss xmm1, xmm0
comiss xmm1, dword [0x51077c]
jae 0x43a01a
mov ecx, dword [0x7c2928]
test ecx, ecx
je 0x43a1a2
cmp byte [0x7b78cf], 0
jne 0x43a1a2
mov eax, dword [ecx]
lea edx, [esp + 0xbc]
push edx
push ecx
call dword [eax + 0x24]
test eax, eax
jne 0x43a1a2
test byte [esp + 0xbc], 1
je 0x43a1a2
mov eax, dword [0x7c2928]
push 0
push 0x517284
push eax
mov ecx, dword [eax]
call dword [ecx + 0x10]
mov eax, dword [0x7c2928]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x48]
mov byte [0x7b78cf], 1
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xe8]
xor ecx, esp
call fcn.004b557b
mov esp, ebp
pop ebp
ret
imul ecx, eax, 0x19
add ecx, 5
call fcn.004ab690
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xe8]
xor ecx, esp
call fcn.004b557b
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0xf4]
mov eax, 0x500
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.004b557b
mov esp, ebp
pop ebp
ret