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

Disassembly:
push edi
push esi
push ebp
push ebx
sub esp, 0x6a0
mov eax, dword [esp + 0x6c4]
mov edx, dword [esp + 0x6c8]
mov ebp, dword [esp + 0x6cc]
mov ecx, dword [esp + 0x6d0]
mov dword [esp + 0x2c], eax
test eax, eax
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x6d4]
mov dword [esp + 0xb8], ecx
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x6d8]
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x6dc]
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x6e0]
mov dword [esp + 0xa8], edx
mov edx, dword [esp + 0x6e4]
mov dword [esp + 0x18], edx
mov dword [esp + 0xb0], eax
jle 0x43e1e9
mov esi, ebp
and esi, 0x80002000
mov edi, ebp
and edi, 0x80001000
mov edx, ebp
xor ebx, ebx
cmp esi, 0x80002000
sete bl
and edx, 0x80000800
xor eax, eax
shl ebx, 0xa
cmp edi, 0x80001000
sete al
xor ecx, ecx
cmp edx, 0x80000800
sete cl
shl eax, 9
or ebx, eax
shl ecx, 8
or ebx, ecx
mov ecx, ebp
shr ecx, 0x16
and ecx, 7
test ebp, 0x80000000
jne 0x43a07b
test cl, 1
jne 0x43a07b
xor ecx, ecx
mov eax, 1
shl eax, cl
or ebx, eax
test cl, 4
je 0x43a0aa
test cl, 2
je 0x43a09c
mov eax, 0xaaaa
mov dword [esp + 0xb4], eax
jmp 0x43a0d9
mov eax, 0xfa
mov dword [esp + 0xb4], eax
jmp 0x43a0d9
test cl, 2
je 0x43a0bd
mov eax, 0xfa00
mov dword [esp + 0xb4], eax
jmp 0x43a0d9
test cl, 1
je 0x43a0cd
xor eax, eax
mov dword [esp + 0xb4], eax
jmp 0x43a0d9
mov eax, 0xa8a8
mov dword [esp + 0xb4], eax
mov esi, dword [esp + 0x6b8]
mov edi, dword [esp + 0x6bc]
mov edx, dword [esp + 0x6c0]
mov dword [esp + 0x14], ebx
mov ebx, dword [esp + 0x6b4]
mov dword [esp + 0x428], ebx
mov ecx, edx
mov dword [esp + 0xc8], esi
mov dword [esp + 0xcc], edi
mov eax, edx
and ecx, 0x7fff0000
mov dword [esp + 0x6b4], ebx
mov ebx, dword [esp + 0x14]
and eax, 0x80000000
xor edx, eax
mov dword [esp + 0x424], eax
mov dword [esp + 0x6b8], esi
mov dword [esp + 0x6bc], edi
lea eax, [edx - 0x3fff0000]
test ecx, ecx
je 0x43a155
cmp ecx, 0x7fff0000
jne 0x43a523
mov eax, edx
xor eax, ecx
or eax, dword [esp + 0xcc]
or eax, dword [esp + 0xc8]
or eax, dword [esp + 0x428]
jne 0x43a241
test ecx, ecx
je 0x43a21c
mov eax, dword [esp + 0x424]
mov dword [esp + 0x520], 0
test eax, eax
je 0x43a199
mov eax, 0xfffffffc
jmp 0x43a19e
mov eax, 4
mov edx, dword [esp + 0xa8]
mov dword [edx], eax
test ebx, 0x400
je 0x43a1c5
test ebx, 0x200
je 0x43a1be
mov ecx, 0x4b2388
jmp 0x43a1ca
mov ecx, 0x4b6f74
jmp 0x43a1ca
mov ecx, 0x4b6f80
mov eax, dword [esp + 0xb8]
movsx ebx, byte [ecx]
test ebx, ebx
je 0x43a1f2
movsx ebx, byte [ecx]
mov dword [esp + 0xcc], ebx
mov byte [eax], bl
movsx ebx, byte [ecx + 1]
add ecx, 1
add eax, 1
test ebx, ebx
jne 0x43a1e2
mov edx, dword [esp + 0xb8]
mov ebx, dword [esp + 0x1c]
mov ecx, eax
sub ecx, edx
mov dword [ebx], ecx
test ebp, 0x40000000
je 0x43a215
mov ecx, 0xc
jmp 0x43aaa4
xor ecx, ecx
jmp 0x43aaa4
mov eax, dword [esp + 0x424]
test eax, eax
je 0x43a22e
mov eax, 0xffffffff
jmp 0x43a233
mov eax, 1
mov edx, dword [esp + 0xa8]
mov dword [edx], eax
jmp 0x43a33c
test ecx, ecx
je 0x43a310
mov dword [esp + 0x520], 0
mov eax, ebx
and eax, 0x400
je 0x43a297
test edx, 0x8000
jne 0x43a27e
mov edx, dword [esp + 0x424]
test edx, edx
je 0x43a277
mov edx, 0xfffffffa
jmp 0x43a299
mov edx, 6
jmp 0x43a299
mov edx, dword [esp + 0x424]
test edx, edx
je 0x43a290
mov edx, 0xfffffffb
jmp 0x43a299
mov edx, 5
jmp 0x43a299
xor edx, edx
mov ecx, dword [esp + 0xa8]
mov dword [ecx], edx
test eax, eax
je 0x43a2bc
test ebx, 0x200
je 0x43a2b5
mov ecx, 0x4b2394
jmp 0x43a2c1
mov ecx, 0x4b6f6c
jmp 0x43a2c1
mov ecx, 0x4b6f70
mov eax, dword [esp + 0xb8]
movsx ebx, byte [ecx]
test ebx, ebx
je 0x43a2e9
movsx ebx, byte [ecx]
mov dword [esp + 0xcc], ebx
mov byte [eax], bl
movsx ebx, byte [ecx + 1]
add ecx, 1
add eax, 1
test ebx, ebx
jne 0x43a2d9
mov edx, dword [esp + 0xb8]
mov ebx, dword [esp + 0x1c]
mov ecx, eax
sub ecx, edx
mov dword [ebx], ecx
test ebp, 0x40000000
je 0x43a215
mov ecx, 0xa
jmp 0x43aaa4
mov eax, dword [esp + 0x424]
test eax, eax
je 0x43a322
mov eax, 0xfffffffe
jmp 0x43a327
mov eax, 2
mov ecx, dword [esp + 0xa8]
test ebp, 0x10000000
mov dword [ecx], eax
je 0x43a3ee
test ebp, 0x80
je 0x43a352
mov eax, 1
mov dword [esp + 0xb0], eax
jmp 0x43a3a9
test ebp, 2
je 0x43a3a9
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
lea edx, [eax + 1]
mov dword [esp + 0xb0], edx
cmp edx, ecx
jle 0x43a37b
mov eax, ecx
mov dword [esp + 0xb0], eax
jmp 0x43a3a9
mov eax, edx
test eax, eax
jg 0x43a3a9
mov eax, dword [esp + 0xb8]
lea eax, [eax + 1]
mov edx, dword [esp + 0xb8]
mov ecx, dword [esp + 0x1c]
mov byte [edx], 0x30
mov dword [ecx], 1
mov ecx, 6
jmp 0x43aaa4
mov edx, dword [esp + 0xb8]
mov ebx, dword [esp + 0xb0]
mov eax, edx
lea ecx, [ebx - 1]
test ebx, ebx
je 0x43a3ce
mov byte [eax], 0x30
add ecx, 0xffffffff
add eax, 1
cmp ecx, 0xffffffff
jne 0x43a3c0
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
test ebp, 0x40000000
je 0x43a215
mov ecx, 0xb
jmp 0x43aaa4
mov eax, dword [esp + 0x6b4]
mov ecx, dword [esp + 0x6b8]
mov esi, dword [esp + 0x6bc]
mov dword [esp + 0x6c0], edx
mov dword [esp + 0xa8], eax
mov eax, edx
mov dword [esp + 0x428], ecx
mov dword [esp + 0xc8], esi
and eax, 0x7fff0000
shr eax, 0x10
test eax, eax
je 0x43a4ba
or edx, 0xffff0000
shl edx, 0xf
mov edi, esi
shr edi, 0x11
or edx, edi
shl esi, 0xf
mov edi, ecx
shr edi, 0x11
or esi, edi
mov edi, dword [esp + 0xa8]
mov dword [esp + 0xc8], esi
shl ecx, 0xf
mov esi, edi
shr esi, 0x11
or ecx, esi
mov dword [esp + 0x428], ecx
shl edi, 0xf
mov dword [esp + 0xa8], edi
mov ecx, dword [esp + 0xc8]
mov esi, dword [esp + 0x428]
mov edi, dword [esp + 0xa8]
mov dword [esp + 0x528], ecx
add eax, 0xffffc001
mov dword [esp + 0x52c], esi
mov dword [esp + 0x530], edi
shl eax, 0x10
shr edx, 0xf
movzx edx, dx
mov dword [esp + 0x524], edx
or eax, edx
jmp 0x43a54a
shl edx, 0x10
mov edi, esi
shr edi, 0x10
or edx, edi
shl esi, 0x10
mov edi, ecx
shr edi, 0x10
or esi, edi
mov edi, dword [esp + 0xa8]
mov dword [esp + 0xc8], esi
shl ecx, 0x10
mov esi, edi
shr esi, 0x10
or ecx, esi
mov dword [esp + 0x428], ecx
shl edi, 0x10
mov dword [esp + 0xa8], edi
test edx, edx
jne 0x43ccfb
mov ecx, dword [esp + 0xc8]
mov esi, dword [esp + 0x428]
jmp 0x43a511
xor edi, edi
mov edx, ecx
mov ecx, esi
mov esi, edi
add eax, 0xffffffe0
test edx, edx
je 0x43a50f
jmp 0x43cce1
mov dword [esp + 0x6c0], edx
mov edx, dword [esp + 0x424]
test edx, edx
je 0x43a53c
mov edx, 0xfffffffd
jmp 0x43a541
mov edx, 3
mov ecx, dword [esp + 0xa8]
mov dword [ecx], edx
mov ecx, dword [esp + 0x424]
xor edx, edx
test ecx, ecx
setne dl
mov dword [esp + 0xac], edx
test ebx, 0x100
je 0x43ab50
and ebx, 0x200
je 0x43a581
mov eax, 0x46
mov dword [esp + 0x424], eax
jmp 0x43a58d
mov eax, 0x66
mov dword [esp + 0x424], eax
test ebx, ebx
je 0x43a59f
mov eax, 8
mov dword [esp + 0x158], eax
jmp 0x43a5ab
mov eax, 0x28
mov dword [esp + 0x158], eax
mov eax, dword [esp + 0x6b4]
mov esi, dword [esp + 0x6b8]
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0x6bc]
mov dword [esp + 0x428], esi
mov esi, dword [esp + 0x6c0]
mov edx, esi
and edx, 0x7fff0000
shr edx, 0x10
mov dword [esp + 0xa4], edx
test edx, edx
je 0x43aae5
mov edx, dword [esp + 0x428]
or esi, 0xffff0000
shl esi, 0xf
mov ecx, eax
shr ecx, 0x11
or esi, ecx
shl eax, 0xf
mov edi, edx
shr edi, 0x11
or eax, edi
shl edx, 0xf
mov edi, dword [esp + 0xc8]
mov ecx, edi
shr ecx, 0x11
or edx, ecx
shl edi, 0xf
mov dword [esp + 0x428], edx
mov dword [esp + 0xc8], edi
mov edi, dword [esp + 0x428]
mov dword [esp + 0x524], esi
mov dword [esp + 0x528], eax
mov dword [esp + 0x52c], edi
xor ecx, ecx
test eax, eax
setne cl
mov dword [esp + 0x430], ecx
mov edx, ecx
mov ecx, dword [esp + 0xc8]
add dword [esp + 0xa4], 0xffffc002
mov dword [esp + 0x530], ecx
xor eax, eax
test edi, edi
setne al
lea edx, [eax + edx + 1]
mov dword [esp + 0xbc], edx
xor eax, eax
test ecx, ecx
setne al
mov dword [esp + 0x154], eax
lea eax, [edx + eax]
mov dword [esp + 0x90], eax
mov eax, ebp
and eax, 2
mov dword [esp + 0x10], eax
jne 0x43a6c9
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x520], 0
mov edx, 3
mov dword [esp + 0xb0], eax
jmp 0x43a72a
mov eax, dword [esp + 0x28]
test eax, eax
jl 0x43cecb
mov edx, dword [esp + 0xa4]
and edx, 3
je 0x43a6e8
neg edx
add edx, 4
jmp 0x43a6ea
xor edx, edx
mov eax, dword [esp + 0xa4]
test eax, eax
jle 0x43ce2b
mov edi, eax
mov dword [esp + 0x520], 0
lea eax, [edi + 3]
sar eax, 1
shr eax, 0x1e
lea edi, [eax + edi + 3]
mov eax, dword [esp + 0x2c]
sar edi, 2
add edi, dword [esp + 0x28]
cmp eax, edi
jge 0x43a723
mov edi, eax
mov dword [esp + 0xb0], edi
add dword [esp + 0xa4], edx
test edx, edx
je 0x43a7e8
mov esi, dword [esp + 0x90]
mov eax, dword [esp + 0x154]
shl esi, 2
mov edi, dword [esp + esi + 0x520]
mov dword [esp + 0x80], esi
mov ecx, edx
neg ecx
mov dword [esp + 0xcc], ecx
shl edi, cl
mov dword [esp + esi + 0x524], edi
mov ecx, edx
shr dword [esp + esi + 0x520], cl
mov esi, dword [esp + 0xbc]
lea eax, [esi + eax - 1]
test eax, eax
je 0x43a7b6
mov eax, dword [esp + 0x154]
mov edi, dword [esp + 0xcc]
lea eax, [esi + eax - 1]
mov esi, dword [esp + eax*4 + 0x520]
mov ecx, edi
shl esi, cl
mov ecx, edx
shr dword [esp + eax*4 + 0x520], cl
or dword [esp + eax*4 + 0x524], esi
add eax, 0xffffffff
jne 0x43a796
mov esi, dword [esp + 0x524]
mov eax, dword [esp + 0x80]
mov edx, dword [esp + eax + 0x524]
test edx, edx
je 0x43a7e8
mov eax, dword [esp + 0x154]
mov edx, dword [esp + 0xbc]
lea ecx, [edx + eax + 1]
mov dword [esp + 0x90], ecx
mov ecx, dword [esp + 0xb0]
mov eax, dword [esp + 0xb8]
mov byte [eax], 0x30
lea edx, [eax + 1]
mov dword [esp + 0xcc], ecx
mov eax, edx
test ecx, ecx
jle 0x43ce18
mov dword [esp + 0x428], edx
mov dword [esp + 0x14], ebx
mov dword [esp + 0xc], ebp
mov ecx, 8
mov dword [esp + 0xc8], ecx
mov edx, ecx
xor edi, edi
mov dword [esp + 0x154], edi
mov ebp, edi
mov ecx, 1
mov edi, dword [esp + 0xcc]
mov dword [esp + 0x430], ecx
add edi, 0xffffffff
test edx, edx
jne 0x43a87b
mov ebx, dword [esp + 0x90]
mov ecx, dword [esp + 0x430]
cmp ecx, ebx
jae 0x43cdb0
add ecx, 1
mov esi, dword [esp + ecx*4 + 0x520]
mov dword [esp + 0x430], ecx
mov edx, 8
mov ebx, esi
shr ebx, 0x1c
mov ebp, ebx
and ebp, 1
shl esi, 4
add edx, 0xffffffff
cmp ebx, 0xa
jge 0x43a895
add ebx, 0x30
jmp 0x43a8a5
mov ecx, dword [esp + 0x14]
test ecx, ecx
je 0x43a8a2
add ebx, 0x37
jmp 0x43a8a5
add ebx, 0x57
mov byte [eax], bl
add eax, 1
test edi, edi
jg 0x43a848
mov ecx, dword [esp + 0x430]
mov dword [esp + 0x154], ebp
mov ebp, dword [esp + 0xc]
mov dword [esp + 0xc8], edx
mov edx, dword [esp + 0x428]
mov ebx, dword [esp + 0xc8]
test ebx, ebx
jne 0x43a8f2
mov ebx, dword [esp + 0x90]
cmp ecx, ebx
jae 0x43a8f0
add ecx, 1
mov esi, dword [esp + ecx*4 + 0x520]
jmp 0x43a8f2
xor esi, esi
mov ebx, dword [esp + 0x90]
add ecx, 1
cmp ecx, ebx
ja 0x43ce0a
sub ebx, ecx
cmp ebx, 6
jb 0x43cdfc
mov edi, dword [esp + 0x90]
xor ebx, ebx
mov dword [esp + 0xcc], ebx
lea ebx, [edi - 6]
mov edi, dword [esp + 0xcc]
or edi, dword [esp + ecx*4 + 0x520]
or edi, dword [esp + ecx*4 + 0x524]
or edi, dword [esp + ecx*4 + 0x528]
or edi, dword [esp + ecx*4 + 0x52c]
or edi, dword [esp + ecx*4 + 0x530]
add ecx, 5
cmp ecx, ebx
jbe 0x43a929
mov dword [esp + 0xcc], edi
mov ebx, dword [esp + 0xcc]
mov edi, dword [esp + 0x90]
or ebx, dword [esp + ecx*4 + 0x520]
add ecx, 1
cmp ecx, edi
jbe 0x43a968
mov dword [esp + 0xcc], ebx
mov ebx, dword [esp + 0xcc]
mov dword [esp + 0x16c], eax
mov edi, esi
xor ecx, ecx
and edi, 0x7fffffff
test edi, edi
setne cl
shr esi, 0x1f
or ebx, ecx
xor ecx, ecx
mov dword [esp + 0x430], ecx
test ebx, ebx
setne cl
mov ebx, dword [esp + 0x154]
mov dword [esp + 0x430], ecx
mov ecx, dword [esp + 0xac]
add ebx, ebx
lea ecx, [ebx + ecx*8]
mov ebx, dword [esp + 0x430]
lea esi, [esi + ebx*4]
mov ebx, dword [esp + 0x1c]
add ecx, esi
mov esi, dword [esp + 0xb4]
shr esi, cl
mov ecx, dword [esp + 0xa4]
mov dword [ebx], ecx
and esi, 1
mov ebx, 4
test esi, esi
je 0x43aa4d
mov edi, dword [esp + 0x424]
lea esi, [eax - 1]
movsx ecx, byte [esi]
mov dword [esp + 0xcc], ecx
cmp ecx, edi
jne 0x43aa21
movsx ecx, byte [esi - 1]
mov eax, esi
add esi, 0xffffffff
cmp ecx, edi
je 0x43aa0d
mov dword [esp + 0xcc], ecx
cmp ecx, 0x39
je 0x43aa32
mov ecx, 1
mov dword [esp + 0x158], ecx
mov ecx, dword [esp + 0xcc]
add ecx, dword [esp + 0x158]
mov byte [eax - 1], cl
cmp eax, edx
je 0x43cdc7
jmp 0x43aa5c
mov ecx, dword [esp + 0xb0]
test ecx, ecx
jle 0x43a33c
test ebp, 0x80
je 0x43aa7f
lea ecx, [eax - 1]
movsx ebx, byte [ecx]
cmp ebx, 0x30
jne 0x43aaa2
movsx ebx, byte [ecx - 1]
mov eax, ecx
add ecx, 0xffffffff
cmp ebx, 0x30
je 0x43aa6f
jmp 0x43aaa2
mov ebx, dword [esp + 0xb0]
mov ecx, eax
sub ecx, edx
sub ebx, ecx
lea ecx, [ebx - 1]
test ebx, ebx
jle 0x43aaa2
mov byte [eax], 0x30
mov ebx, ecx
add eax, 1
add ecx, 0xffffffff
test ebx, ebx
jg 0x43aa93
xor ecx, ecx
mov ebx, dword [esp + 0x24]
mov byte [eax], 0
test ebx, ebx
je 0x43aabd
mov ebp, ebx
mov ebx, edx
sub ebx, dword [esp + 0xb8]
mov dword [ebp], ebx
mov ebx, dword [esp + 0x20]
test ebx, ebx
je 0x43aace
sub eax, dword [esp + 0xb8]
mov dword [ebx], eax
mov ebx, dword [esp + 0x18]
test ebx, ebx
je 0x43aad8
mov dword [ebx], ecx
mov eax, edx
add esp, 0x6a0
pop ebx
pop ebp
pop esi
pop edi
ret
mov edx, dword [esp + 0x428]
shl esi, 0x10
mov ecx, eax
shr ecx, 0x10
or esi, ecx
shl eax, 0x10
mov edi, edx
shr edi, 0x10
or eax, edi
mov edi, dword [esp + 0xc8]
shl edx, 0x10
mov ecx, edi
shr ecx, 0x10
or edx, ecx
mov dword [esp + 0x428], edx
shl edi, 0x10
mov dword [esp + 0xc8], edi
test esi, esi
jne 0x43cef4
mov edi, dword [esp + 0xa4]
mov ecx, edx
mov edx, dword [esp + 0xc8]
jmp 0x43ab3e
xor edx, edx
mov esi, eax
mov eax, ecx
mov ecx, edx
add edi, 0xffffffe0
test esi, esi
je 0x43ab3c
jmp 0x43ceda
mov dword [esp + 0x520], 0
test eax, eax
jl 0x43e1df
mov edx, 0x4d104d42
mov dword [esp], eax
mov dword [esp + 4], edx
mov eax, dword [esp]
imul dword [esp + 4]
mov dword [esp + 8], edx
movsx edi, word [esp + 0xa]
mov dword [esp + 0x14], ebx
mov dword [esp + 0xc], ebp
add edi, 1
mov dword [esp + 0xa4], edi
xor esi, esi
mov dword [esp + 0x80], esi
mov dword [esp + 0x424], esi
mov dword [esp + 0x90], esi
mov dword [esp + 0x158], esi
mov eax, ebp
and eax, 2
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xb8]
lea eax, [eax + 1]
mov dword [esp + 0xbc], eax
jmp 0x43abde
mov eax, dword [esp + 0xa4]
neg eax
add eax, 1
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0x10]
test eax, eax
je 0x43ac37
mov eax, dword [esp + 0x28]
test eax, eax
jl 0x43d025
mov edx, eax
mov eax, dword [esp + 0xa4]
mov ebx, dword [esp + 0x2c]
lea ecx, [eax + edx]
cmp ecx, ebx
mov dword [esp + 0xb0], ecx
jle 0x43ac1e
mov edx, dword [esp + 0x1c]
mov ecx, ebx
mov dword [esp + 0xb0], ecx
mov dword [edx], eax
jmp 0x43ac44
mov eax, ecx
test eax, eax
jle 0x43cfa7
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0xa4]
mov dword [edx], eax
jmp 0x43ac44
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0xa4]
mov dword [edx], eax
neg eax
mov dword [esp + 0xa4], eax
jne 0x43b1f5
mov ebp, dword [esp + 0x6b4]
mov esi, dword [esp + 0x6b8]
mov eax, dword [esp + 0x6bc]
mov edi, dword [esp + 0x6c0]
mov ebx, edi
and ebx, 0x7fff0000
shr ebx, 0x10
test ebx, ebx
je 0x43b1b7
or edi, 0xffff0000
shl edi, 0xf
mov edx, eax
shr edx, 0x11
or edi, edx
shl eax, 0xf
mov ecx, esi
shr ecx, 0x11
or eax, ecx
shl esi, 0xf
mov edx, ebp
shr edx, 0x11
or esi, edx
shl ebp, 0xf
mov dword [esp + 0x524], edi
mov dword [esp + 0x528], eax
mov dword [esp + 0x52c], esi
mov dword [esp + 0x530], ebp
add ebx, 0xffffc002
xor edx, edx
mov dword [esp + 0xcc], ebx
test eax, eax
setne dl
xor eax, eax
test esi, esi
setne al
lea eax, [eax + edx + 1]
xor ecx, ecx
test ebp, ebp
setne cl
mov edx, 0x71
add eax, ecx
mov dword [esp + 0xc8], edx
mov dword [esp + 0x504], eax
xor ecx, ecx
mov dword [esp + 0xd0], ecx
mov eax, dword [esp + 0xcc]
test eax, eax
jg 0x43abcb
neg eax
mov dword [esp + 0xcc], eax
je 0x43ad94
mov esi, dword [esp + 0x504]
mov ebp, eax
mov edx, esi
shl edx, 2
mov eax, ebp
neg eax
mov ebx, dword [esp + edx + 0x520]
mov ecx, eax
shl ebx, cl
mov ecx, ebp
shr dword [esp + edx + 0x520], cl
add esi, 0xffffffff
mov dword [esp + edx + 0x524], ebx
je 0x43ad81
mov ebx, dword [esp + 0x504]
mov esi, ecx
lea ebx, [ebx - 1]
mov ebp, dword [esp + ebx*4 + 0x520]
mov ecx, eax
shl ebp, cl
mov ecx, esi
shr dword [esp + ebx*4 + 0x520], cl
or dword [esp + ebx*4 + 0x524], ebp
add ebx, 0xffffffff
jne 0x43ad61
mov eax, dword [esp + edx + 0x524]
test eax, eax
je 0x43ad94
add dword [esp + 0x504], 1
mov edx, dword [esp + 0xb8]
mov eax, dword [esp + 0xbc]
mov ecx, dword [esp + 0xb0]
mov dword [esp + 0x16c], eax
cmp ecx, 0x25
mov byte [edx], 0x30
mov dword [esp + 0x428], eax
mov edx, 0x25
jge 0x43adc6
mov edx, ecx
test edx, edx
je 0x43d0b1
mov ebp, dword [esp + 0x504]
mov edi, dword [esp + 0x16c]
xor ebx, ebx
mov dword [esp + 0x520], 0
xor esi, esi
test ebp, ebp
je 0x43aeb0
mov esi, dword [esp + ebp*4 + 0x520]
mov dword [esp + ebp*4 + 0x520], 0
mov eax, 0
je 0x43aea2
mov dword [esp + 0x42c], ebx
mov eax, ebp
mov dword [esp + 0x430], edx
mov dword [esp + 0x504], ebp
mov dword [esp + 0x16c], edi
mov ebp, dword [esp + eax*4 + 0x520]
mov ebx, esi
shr ebx, 0x1e
lea edx, [esi + esi*4]
cmp edx, esi
mov ecx, 0
adc ecx, 0
mov esi, edx
shr esi, 0x1f
add ecx, ebx
add ecx, ecx
or ecx, esi
mov esi, dword [esp + eax*4 + 0x51c]
lea ebx, [edx + edx]
lea edi, [ebp + edx*2]
cmp edi, ebx
mov dword [esp + eax*4 + 0x520], edi
mov edx, 0
adc edx, 0
add edx, ecx
mov dword [esp + eax*4 + 0x51c], edx
add eax, 0xffffffff
jne 0x43ae2e
mov ebx, dword [esp + 0x42c]
mov edx, dword [esp + 0x430]
mov ebp, dword [esp + 0x504]
mov edi, dword [esp + 0x16c]
mov eax, dword [esp + ebp*4 + 0x520]
mov esi, dword [esp + 0x520]
test eax, eax
jne 0x43aeb0
add ebp, 0xffffffff
add ebx, 0x35269
lea eax, [esi + 0x30]
mov byte [edi], al
add edi, 1
add edx, 0xffffffff
jne 0x43adde
mov dword [esp + 0x16c], edi
mov ebp, dword [esp + 0xc8]
mov edx, dword [esp + 0x524]
add ebx, 0xffff
mov dword [esp + 0x504], edx
lea eax, [ebp + 0x1f]
and eax, 0xffffffe0
mov dword [esp + 0xcc], eax
shr ebx, 0x10
sub ebx, ebp
add ebx, eax
mov eax, dword [esp + 0xd0]
mov ecx, ebx
mov ebp, eax
shl ebp, cl
lea edi, [edx - 0x80000000]
mov dword [esp + 0xc4], edi
and esi, 1
xor eax, eax
test edi, edi
setge al
je 0x43af34
mov edx, edi
cmp edx, 0x80000000
je 0x43af34
mov edi, 1
jmp 0x43af36
xor edi, edi
mov edx, dword [esp + 0xac]
add esi, esi
lea esi, [esi + edx*8]
mov edx, dword [esp + 0x504]
mov dword [esp + 0xc0], esi
add eax, esi
lea ecx, [eax + edi*4]
mov edi, dword [esp + 0xb4]
shr edi, cl
lea esi, [ebp + edx - 0x80000000]
and edi, 1
mov dword [esp + 0x340], edi
lea edi, [ebp + ebp]
xor edx, edx
cmp esi, edi
setbe dl
mov esi, dword [esp + 0xcc]
sub esi, ebx
cmp esi, 0x20
jb 0x43b16e
mov edx, dword [esp + 0x504]
add edx, 0x80000001
cmp edx, 1
ja 0x43d031
mov edx, dword [esp + 0xd0]
mov esi, ebx
shr esi, 5
mov ecx, ebx
mov ebp, edx
shl ebp, cl
mov ebx, dword [esp + 0xcc]
shr ebx, 5
mov edx, ebp
mov ecx, ebp
sub ebx, esi
mov dword [esp + 0xcc], ebx
cmp ebx, 1
jle 0x43b125
lea ebx, [ebx - 1]
cmp ebx, 5
jl 0x43b0c3
mov ebx, dword [esp + 0xcc]
mov dword [esp + 0x84], ebp
mov ebp, dword [esp + 0xc4]
mov esi, dword [esp + ebx*4 + 0x520]
add edx, esi
neg ecx
add ecx, esi
mov edi, 0
xor eax, eax
test esi, esi
setne al
cmp edx, esi
adc edi, 0
mov edx, dword [esp + ebx*4 + 0x51c]
or ebp, eax
cmp esi, ecx
mov ecx, 0
adc ecx, 0
add edi, edx
xor eax, eax
test edx, edx
setne al
neg ecx
add ecx, edx
or ebp, eax
cmp edi, edx
mov esi, 0
adc esi, 0
cmp edx, ecx
mov ecx, dword [esp + ebx*4 + 0x518]
mov edi, 0
adc edi, 0
add esi, ecx
mov edx, 0
neg edi
add edi, ecx
xor eax, eax
test ecx, ecx
setne al
cmp esi, ecx
adc edx, 0
or ebp, eax
cmp ecx, edi
mov esi, 0
adc esi, 0
mov eax, dword [esp + ebx*4 + 0x514]
add edx, eax
xor ecx, ecx
test eax, eax
setne cl
neg esi
add esi, eax
or ebp, ecx
cmp edx, eax
mov edx, 0
adc edx, 0
cmp eax, esi
mov ecx, 0
adc ecx, 0
add ebx, 0xfffffffc
cmp ebx, 6
jge 0x43aff5
mov dword [esp + 0xcc], ebx
mov eax, ebx
mov dword [esp + 0xc4], ebp
lea ebx, [eax - 1]
mov ebp, dword [esp + 0x84]
mov eax, dword [esp + 0xcc]
mov esi, dword [esp + 0xc4]
jmp 0x43b0d6
add ebx, 0xffffffff
mov edi, dword [esp + eax*4 + 0x520]
add edx, edi
neg ecx
add ecx, edi
xor eax, eax
test edi, edi
setne al
cmp edx, edi
mov edx, 0
adc edx, 0
or esi, eax
cmp edi, ecx
mov ecx, 0
adc ecx, 0
mov eax, ebx
cmp ebx, 1
jg 0x43b0d3
mov dword [esp + 0xcc], eax
mov dword [esp + 0xc4], esi
mov ebx, esi
xor eax, eax
test ebx, ebx
setge al
add eax, dword [esp + 0xc0]
mov ebx, dword [esp + 0xcc]
mov esi, dword [esp + ebx*4 + 0x520]
add edx, esi
sub esi, ecx
xor edx, esi
shr edx, 0x1f
mov ecx, dword [esp + 0xc4]
test ecx, ecx
je 0x43b156
cmp ecx, 0x80000000
je 0x43b156
mov ecx, 1
jmp 0x43b158
xor ecx, ecx
mov ebx, dword [esp + 0xb4]
lea ecx, [eax + ecx*4]
shr ebx, cl
and ebx, 1
mov dword [esp + 0x340], ebx
test edx, edx
je 0x43d031
test ebp, ebp
je 0x43d031
mov eax, dword [esp + 0xc8]
cmp eax, 0x80
jae 0x43d067
cmp eax, 0x40
jae 0x43b1a6
mov eax, 0x40
mov dword [esp + 0xc8], eax
jmp 0x43b23b
mov eax, 0x80
mov dword [esp + 0xc8], eax
jmp 0x43b23b
shl edi, 0x10
mov edx, eax
shr edx, 0x10
or edi, edx
shl eax, 0x10
mov ecx, esi
shr ecx, 0x10
or eax, ecx
shl esi, 0x10
mov edx, ebp
shr edx, 0x10
or esi, edx
shl ebp, 0x10
test edi, edi
je 0x43b1e3
jmp 0x43d0c4
xor ebp, ebp
mov edi, eax
mov eax, esi
mov esi, ebp
add ebx, 0xffffffe0
test edi, edi
je 0x43b1e1
jmp 0x43d0bf
cmp eax, 0xfffffeaa
jl 0x43b203
cmp eax, 0x159
jle 0x43b20a
mov edx, 0x80
jmp 0x43b222
mov eax, dword [esp + 0xb0]
cmp eax, 0x11
jle 0x43b21d
mov edx, 0x80
jmp 0x43b222
mov edx, 0x40
mov dword [esp + 0xc8], edx
xor ecx, ecx
cmp edx, 0x80
setne cl
mov dword [esp + 0xd0], ecx
mov eax, dword [esp + 0x6b4]
mov edx, dword [esp + 0x6b8]
mov esi, dword [esp + 0x6bc]
mov ebp, dword [esp + 0x6c0]
mov ecx, ebp
and ecx, 0x7fff0000
shr ecx, 0x10
mov dword [esp + 0xcc], ecx
test ecx, ecx
je 0x43cc9b
or ebp, 0xffff0000
shl ebp, 0xf
mov ecx, esi
shr ecx, 0x11
or ebp, ecx
shl esi, 0xf
mov ebx, edx
shr ebx, 0x11
or esi, ebx
shl edx, 0xf
mov edi, eax
shr edi, 0x11
or edx, edi
shl eax, 0xf
mov dword [esp + 0x524], ebp
mov dword [esp + 0x528], esi
mov dword [esp + 0x52c], edx
mov dword [esp + 0x530], eax
xor ecx, ecx
test esi, esi
setne cl
add dword [esp + 0xcc], 0xffffc002
xor ebx, ebx
test edx, edx
setne bl
xor edx, edx
test eax, eax
setne dl
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x16c], edx
lea esi, [ebx + ecx + 1]
lea edi, [esi + edx]
cmp eax, 0x40
mov dword [esp + 0xa8], edi
mov edi, dword [esp + 0xa4]
jne 0x43b6fe
mov eax, edi
cmp eax, 0xffffffd1
jl 0x43b3be
cmp eax, 0x2f
jg 0x43b35d
mov ecx, eax
movsx eax, word [ecx*2 + 0x495e7e]
mov edx, dword [ecx*8 + 0x495c9c]
mov ebx, dword [ecx*8 + 0x495c98]
mov dword [esp + 0x154], eax
test ebx, ebx
mov dword [esp + 0x5e4], edx
mov dword [esp + 0x5e8], ebx
jne 0x43d137
mov edi, 2
mov eax, dword [esp + edi*4 + 0x5dc]
add edi, 0xffffffff
test eax, eax
je 0x43b34a
jmp 0x43c613
mov edx, eax
mov ecx, edx
sar ecx, 3
lea ebx, [ecx + ecx]
movzx eax, word [ebx + 0x496062]
shr eax, 5
cmp eax, edx
jg 0x43b379
lea ebx, [ecx + ecx + 2]
movzx eax, word [ebx + 0x496060]
mov ebx, eax
and ebx, 0x1f
movsx edx, word [ebx*2 + 0x4960dc]
mov ecx, dword [ebx*8 + 0x495fe4]
mov ebp, dword [ebx*8 + 0x495fe0]
mov dword [esp + 0x90], edx
mov dword [esp + 0x4c8], ecx
shr eax, 5
mov dword [esp + 0x4cc], ebp
neg eax
add eax, dword [esp + 0xa4]
jmp 0x43b41a
mov edx, eax
neg edx
mov ecx, edx
sar ecx, 3
movzx ebx, word [ecx*2 + 0x495f60]
mov eax, ebx
shr eax, 5
cmp eax, edx
jge 0x43b3e5
movzx ebx, word [ecx*2 + 0x495f62]
mov eax, ebx
shr eax, 5
add eax, dword [esp + 0xa4]
and ebx, 0x1f
movsx edx, word [ebx*2 + 0x4960bc]
mov ecx, dword [ebx*8 + 0x495ee4]
mov ebx, dword [ebx*8 + 0x495ee0]
mov dword [esp + 0x90], edx
mov dword [esp + 0x4c8], ecx
mov dword [esp + 0x4cc], ebx
movsx edx, word [eax*2 + 0x495e7e]
mov ecx, dword [eax*8 + 0x495c9c]
mov eax, dword [eax*8 + 0x495c98]
mov dword [esp + 0x154], edx
test eax, eax
mov dword [esp + 0x5e4], ecx
mov dword [esp + 0x5e8], eax
jne 0x43d383
mov ebp, 2
mov eax, dword [esp + ebp*4 + 0x5dc]
add ebp, 0xffffffff
test eax, eax
je 0x43b452
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x4cc]
mov dword [esp + 0x88], eax
lea edi, [ebp + 2]
mov eax, dword [esp + 0x8c]
mul dword [esp + 0x88]
mov dword [esp + 0x51c], eax
mov dword [esp + 0x518], edx
mov eax, dword [esp + 0x51c]
mov edx, dword [esp + 0x518]
mov ecx, dword [esp + ebp*4 + 0x5e0]
mov ebx, dword [esp + 0x4c8]
mov dword [esp + 0x508], ecx
mov dword [esp + ebp*4 + 0x48c], eax
mov dword [esp + 0x50c], ebx
mov dword [esp + ebp*4 + 0x488], edx
mov dword [esp + ebp*4 + 0x448], 0
mov eax, dword [esp + 0x508]
mul dword [esp + 0x50c]
mov dword [esp + 0x514], eax
mov dword [esp + 0x510], edx
mov eax, dword [esp + ebp*4 + 0x488]
add eax, dword [esp + 0x514]
cmp eax, dword [esp + 0x514]
mov dword [esp + ebp*4 + 0x488], eax
mov ecx, 0
mov edx, ecx
adc edx, 0
add edx, dword [esp + 0x510]
mov dword [esp + ebp*4 + 0x484], edx
lea eax, [ebp - 1]
test eax, eax
mov dword [esp + ebp*4 + 0x444], ecx
jl 0x43b5a1
cmp eax, 6
jl 0x43b58a
xor edx, edx
mov dword [esp + eax*4 + 0x444], edx
mov dword [esp + eax*4 + 0x484], edx
mov dword [esp + eax*4 + 0x440], edx
mov dword [esp + eax*4 + 0x480], edx
mov dword [esp + eax*4 + 0x43c], edx
mov dword [esp + eax*4 + 0x47c], edx
mov dword [esp + eax*4 + 0x438], edx
mov dword [esp + eax*4 + 0x478], edx
mov dword [esp + eax*4 + 0x434], edx
mov dword [esp + eax*4 + 0x474], edx
add eax, 0xfffffffb
cmp eax, 6
jge 0x43b53a
xor edx, edx
mov dword [esp + eax*4 + 0x444], edx
mov dword [esp + eax*4 + 0x484], edx
add eax, 0xffffffff
test eax, eax
jge 0x43b58a
add ebp, 0xffffffff
je 0x43b67d
mov dword [esp + 0xc4], edi
mov eax, ebp
mov dword [esp + 0x428], esi
shl eax, 2
mov dword [esp + 0x504], eax
mov ebx, 8
lea ecx, [eax + 8]
mov eax, dword [esp + ebp*4 + 0x5e0]
mov edx, dword [esp + ebx + 0x4c4]
mov dword [esp + 0x680], eax
mov dword [esp + 0x684], edx
mov eax, dword [esp + 0x680]
mul dword [esp + 0x684]
mov dword [esp + 0x68c], eax
mov dword [esp + 0x688], edx
mov eax, dword [esp + ecx + 0x484]
add eax, dword [esp + 0x68c]
cmp eax, dword [esp + 0x68c]
mov edx, dword [esp + ecx + 0x480]
mov dword [esp + ecx + 0x484], eax
mov esi, 0
adc esi, 0
mov edi, 0
add esi, dword [esp + 0x688]
add edx, esi
cmp edx, esi
adc edi, 0
mov dword [esp + ecx + 0x480], edx
add dword [esp + ecx + 0x43c], edi
add ecx, 0xfffffffc
add ebx, 0xfffffffc
jne 0x43b5cc
mov eax, dword [esp + 0x504]
add eax, 0xfffffffc
add ebp, 0xffffffff
jne 0x43b5bd
mov edi, dword [esp + 0xc4]
mov esi, dword [esp + 0x428]
mov eax, dword [esp + 0x154]
add eax, dword [esp + 0x90]
mov ecx, edi
shl ecx, 2
mov edx, dword [esp + ecx + 0x484]
mov dword [esp + ecx + 0x5e0], edx
mov dword [esp + 0x154], eax
mov eax, edi
add eax, 0xffffffff
je 0x43b6dd
xor ebx, ebx
mov edx, eax
add ebx, dword [esp + edx*4 + 0x444]
mov ebp, dword [esp + edx*4 + 0x484]
add ebp, ebx
cmp ebp, ebx
mov dword [esp + edx*4 + 0x5e0], ebp
mov ebx, 0
adc ebx, 0
add edx, 0xffffffff
jne 0x43b6b0
mov edx, dword [esp + ecx + 0x5e0]
test edx, edx
je 0x43b6e9
jmp 0x43d14a
add eax, 0xffffffff
mov ecx, eax
shl ecx, 2
mov edx, dword [esp + ecx + 0x5e0]
test edx, edx
je 0x43b6e6
jmp 0x43d148
mov eax, edi
cmp eax, 0xfffffdea
jge 0x43bd3d
cmp eax, 0xfffff000
jle 0x43b738
mov dword [esp + 0x428], esi
mov esi, dword [esp + 0x158]
xor ebx, ebx
mov eax, 0x1000
mov ebp, 3
mov dword [esp + 0x154], eax
jmp 0x43bd06
mov dword [esp + 0x428], esi
mov esi, dword [esp + 0x158]
xor ebx, ebx
mov eax, 0x1000
mov ebp, 3
mov dword [esp + 0x154], eax
add edi, dword [esp + 0x154]
test ebx, ebx
je 0x43bcc0
movsx edx, word [ebp*2 + 0x495ae0]
mov dword [esp + 0x90], edx
mov ecx, ebp
shl ecx, 4
lea edx, [ebx + 4]
mov eax, dword [ecx + 0x4957cc]
mov dword [esp + 0x4c8], eax
mov eax, dword [ecx + 0x4957c8]
mov dword [esp + 0x4cc], eax
mov eax, dword [ecx + 0x4957c4]
mov dword [esp + 0x4d0], eax
mov eax, dword [ecx + 0x4957c0]
mov dword [esp + 0x4d4], eax
mov dword [esp + 0xc0], edx
mov edx, dword [esp + ebx*4 + 0x300]
mov dword [esp + 0x50], edx
mov dword [esp + 0x54], eax
lea ecx, [ebx + 3]
mov dword [esp + 0x84], ecx
mov eax, dword [esp + 0x50]
mul dword [esp + 0x54]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x84]
mov dword [esp + eax*4 + 0x204], edx
mov edx, dword [esp + 0x58]
mov dword [esp + eax*4 + 0x200], edx
mov dword [esp + 0x158], esi
mov eax, 3
mov esi, eax
mov edx, dword [esp + ebx*4 + 0x300]
mov dword [esp + ecx*4 + 0x240], 0
mov dword [esp + 0x344], edx
mov edx, dword [esp + esi*4 + 0x4c4]
mov dword [esp + 0x348], edx
mov eax, dword [esp + 0x344]
mul dword [esp + 0x348]
mov dword [esp + 0x350], eax
mov dword [esp + 0x34c], edx
mov edx, dword [esp + ecx*4 + 0x200]
add edx, dword [esp + 0x350]
cmp edx, dword [esp + 0x350]
mov dword [esp + ecx*4 + 0x200], edx
mov edx, 0
adc edx, 0
add ecx, 0xffffffff
add edx, dword [esp + 0x34c]
mov dword [esp + ecx*4 + 0x200], edx
add esi, 0xffffffff
jne 0x43b80e
mov esi, dword [esp + 0x158]
mov dword [esp + ecx*4 + 0x240], 0
add ecx, 0xffffffff
test ecx, ecx
jl 0x43b910
cmp ecx, 6
jl 0x43b8f9
xor eax, eax
mov dword [esp + ecx*4 + 0x240], eax
mov dword [esp + ecx*4 + 0x200], eax
mov dword [esp + ecx*4 + 0x23c], eax
mov dword [esp + ecx*4 + 0x1fc], eax
mov dword [esp + ecx*4 + 0x238], eax
mov dword [esp + ecx*4 + 0x1f8], eax
mov dword [esp + ecx*4 + 0x234], eax
mov dword [esp + ecx*4 + 0x1f4], eax
mov dword [esp + ecx*4 + 0x230], eax
mov dword [esp + ecx*4 + 0x1f0], eax
add ecx, 0xfffffffb
cmp ecx, 6
jge 0x43b8a9
xor eax, eax
mov dword [esp + ecx*4 + 0x240], eax
mov dword [esp + ecx*4 + 0x200], eax
add ecx, 0xffffffff
test ecx, ecx
jge 0x43b8f9
add ebx, 0xffffffff
je 0x43b9fa
mov dword [esp + 0x504], ebp
mov eax, ebx
mov dword [esp + 0xc4], edi
mov dword [esp + 0x158], esi
shl eax, 2
mov dword [esp + 0x340], eax
mov ebp, 0x10
lea ecx, [eax + 0x10]
mov eax, dword [esp + ebx*4 + 0x300]
mov edx, dword [esp + ebp + 0x4c4]
mov dword [esp + 0x650], eax
mov dword [esp + 0x654], edx
mov eax, dword [esp + 0x650]
mul dword [esp + 0x654]
mov dword [esp + 0x65c], eax
mov dword [esp + 0x658], edx
mov eax, dword [esp + ecx + 0x200]
add eax, dword [esp + 0x65c]
cmp eax, dword [esp + 0x65c]
mov edx, dword [esp + ecx + 0x1fc]
mov dword [esp + ecx + 0x200], eax
mov esi, 0
adc esi, 0
mov edi, 0
add esi, dword [esp + 0x658]
add edx, esi
cmp edx, esi
adc edi, 0
mov dword [esp + ecx + 0x1fc], edx
add dword [esp + ecx + 0x238], edi
add ecx, 0xfffffffc
add ebp, 0xfffffffc
jne 0x43b942
mov eax, dword [esp + 0x340]
add eax, 0xfffffffc
add ebx, 0xffffffff
jne 0x43b933
mov ebp, dword [esp + 0x504]
mov edi, dword [esp + 0xc4]
mov esi, dword [esp + 0x158]
add esi, dword [esp + 0x90]
mov ebx, dword [esp + 0xc0]
mov edx, dword [esp + ebx*4 + 0x200]
mov eax, dword [esp + 0x84]
mov dword [esp + ebx*4 + 0x300], edx
test eax, eax
je 0x43ba5c
mov edx, ebx
xor eax, eax
lea edx, [edx - 1]
add eax, dword [esp + edx*4 + 0x240]
mov ecx, dword [esp + edx*4 + 0x200]
add ecx, eax
cmp ecx, eax
mov dword [esp + edx*4 + 0x300], ecx
mov eax, 0
adc eax, 0
add edx, 0xffffffff
jne 0x43ba28
mov eax, dword [esp + 0xc0]
mov edx, dword [esp + eax*4 + 0x300]
test edx, edx
jne 0x43ba6e
add ebx, 0xffffffff
mov eax, dword [esp + ebx*4 + 0x300]
test eax, eax
je 0x43ba60
mov eax, dword [esp + 0x304]
test eax, eax
jle 0x43bb58
add eax, eax
mov dword [esp + 0x304], eax
add esi, 0xffffffff
cmp ebx, 2
jb 0x43bb58
lea eax, [ebx - 2]
cmp eax, 5
jb 0x43d394
mov dword [esp + 0x158], esi
mov edx, 2
lea eax, [ebx - 5]
mov ecx, dword [esp + edx*4 + 0x300]
mov esi, dword [esp + edx*4 + 0x304]
shr ecx, 0x1f
shr esi, 0x1f
or dword [esp + edx*4 + 0x2fc], ecx
mov ecx, dword [esp + edx*4 + 0x300]
add ecx, ecx
or ecx, esi
mov esi, dword [esp + edx*4 + 0x304]
mov dword [esp + edx*4 + 0x300], ecx
mov ecx, dword [esp + edx*4 + 0x308]
add esi, esi
shr ecx, 0x1f
or esi, ecx
mov ecx, dword [esp + edx*4 + 0x30c]
mov dword [esp + edx*4 + 0x304], esi
mov esi, dword [esp + edx*4 + 0x308]
add esi, esi
shr ecx, 0x1f
or esi, ecx
mov ecx, dword [esp + edx*4 + 0x30c]
add ecx, ecx
mov dword [esp + edx*4 + 0x308], esi
mov dword [esp + edx*4 + 0x30c], ecx
add edx, 4
cmp edx, eax
jbe 0x43baad
mov esi, dword [esp + 0x158]
mov eax, dword [esp + edx*4 + 0x300]
mov ecx, dword [esp + edx*4 + 0x300]
shr eax, 0x1f
or dword [esp + edx*4 + 0x2fc], eax
add ecx, ecx
mov dword [esp + edx*4 + 0x300], ecx
add edx, 1
cmp edx, ebx
jbe 0x43bb30
mov eax, dword [esp + ebx*4 + 0x300]
test eax, eax
jne 0x43bb66
add ebx, 0xffffffff
mov edx, dword [esp + 0xc8]
mov eax, edx
shr eax, 5
mov dword [esp + 0xc0], eax
and edx, 0x1f
mov dword [esp + 0x430], edx
xor ecx, ecx
cmp ecx, edx
adc ecx, 0
mov dword [esp + 0x84], ecx
lea eax, [eax + ecx]
cmp ebx, eax
jb 0x43bd06
mov edx, ecx
mov ebx, eax
test edx, edx
je 0x43bbc0
mov ecx, dword [esp + 0x430]
neg ecx
add ecx, 0x1f
mov edx, 1
shl edx, cl
mov dword [esp + 0x340], edx
jmp 0x43bbd1
mov edx, dword [esp + eax*4 + 0x304]
shr edx, 0x1f
mov dword [esp + 0x340], edx
test eax, eax
je 0x43bcae
mov edx, dword [esp + eax*4 + 0x300]
mov ecx, dword [esp + 0x340]
add edx, ecx
mov dword [esp + 0x430], edx
cmp edx, ecx
jae 0x43bc5e
mov ecx, dword [esp + 0x84]
mov dword [esp + eax*4 + 0x300], edx
mov eax, dword [esp + 0xc0]
mov dword [esp + 0x300], 0
lea ebx, [eax + ecx - 1]
mov eax, dword [esp + ebx*4 + 0x300]
cmp eax, 0xffffffff
jne 0x43bc33
mov eax, dword [esp + ebx*4 + 0x2fc]
add ebx, 0xffffffff
cmp eax, 0xffffffff
je 0x43bc24
test ebx, ebx
je 0x43bc46
add eax, 1
mov dword [esp + ebx*4 + 0x300], eax
jmp 0x43bd06
mov dword [esp + 0x304], 0x80000000
add esi, 1
mov ebx, 1
jmp 0x43bd06
mov edx, dword [esp + 0x84]
test edx, edx
je 0x43bc8a
mov edx, ecx
lea ecx, [edx + edx - 1]
mov edx, dword [esp + 0x430]
not ecx
and edx, ecx
mov dword [esp + 0x430], edx
mov dword [esp + eax*4 + 0x300], edx
jmp 0x43bc98
mov edx, dword [esp + 0x430]
mov dword [esp + eax*4 + 0x300], edx
mov eax, edx
test eax, eax
jne 0x43bd06
mov eax, dword [esp + ebx*4 + 0x2fc]
add ebx, 0xffffffff
test eax, eax
je 0x43bc9e
jmp 0x43bd06
mov eax, edx
mov ebx, eax
add esi, eax
shl eax, 0x1f
mov dword [esp + 0x304], eax
jmp 0x43bd06
movsx esi, word [ebp*2 + 0x495ae0]
mov ebx, ebp
shl ebx, 4
mov eax, dword [ebx + 0x4957cc]
mov edx, dword [ebx + 0x4957c8]
mov ecx, dword [ebx + 0x4957c4]
mov dword [esp + 0x304], eax
mov eax, dword [ebx + 0x4957c0]
mov ebx, 4
mov dword [esp + 0x308], edx
mov dword [esp + 0x30c], ecx
mov dword [esp + 0x310], eax
mov edx, dword [esp + 0x154]
sar edx, 1
add ebp, 0xffffffff
test ebp, ebp
jl 0x43bd2a
mov eax, edx
neg eax
cmp edi, eax
jg 0x43bd0d
mov dword [esp + 0x154], edx
jmp 0x43b759
mov dword [esp + 0x158], esi
mov esi, dword [esp + 0x428]
jmp 0x43c369
cmp eax, 0x216
jle 0x43c367
cmp eax, 0x1000
jge 0x43bd75
mov dword [esp + 0x428], esi
mov esi, dword [esp + 0x158]
xor ebx, ebx
mov eax, 0x1000
mov ebp, 3
mov dword [esp + 0x154], eax
jmp 0x43c343
mov dword [esp + 0x428], esi
mov esi, dword [esp + 0x158]
xor ebx, ebx
mov eax, 0x1000
mov ebp, 3
mov dword [esp + 0x154], eax
sub edi, dword [esp + 0x154]
test ebx, ebx
je 0x43c2fd
movsx edx, word [ebp*2 + 0x495afc]
mov dword [esp + 0x90], edx
mov ecx, ebp
shl ecx, 4
lea edx, [ebx + 4]
mov eax, dword [ecx + 0x49594c]
mov dword [esp + 0x4c8], eax
mov eax, dword [ecx + 0x495948]
mov dword [esp + 0x4cc], eax
mov eax, dword [ecx + 0x495944]
mov dword [esp + 0x4d0], eax
mov eax, dword [ecx + 0x495940]
mov dword [esp + 0x4d4], eax
mov dword [esp + 0x84], edx
mov edx, dword [esp + ebx*4 + 0x300]
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], eax
lea ecx, [ebx + 3]
mov dword [esp + 0xc0], ecx
mov eax, dword [esp + 0x30]
mul dword [esp + 0x34]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0xc0]
mov dword [esp + eax*4 + 0xd8], edx
mov edx, dword [esp + 0x38]
mov dword [esp + eax*4 + 0xd4], edx
mov dword [esp + 0x158], esi
mov eax, 3
mov esi, eax
mov edx, dword [esp + ebx*4 + 0x300]
mov dword [esp + ecx*4 + 0x114], 0
mov dword [esp + 0x15c], edx
mov edx, dword [esp + esi*4 + 0x4c4]
mov dword [esp + 0x160], edx
mov eax, dword [esp + 0x15c]
mul dword [esp + 0x160]
mov dword [esp + 0x168], eax
mov dword [esp + 0x164], edx
mov edx, dword [esp + ecx*4 + 0xd4]
add edx, dword [esp + 0x168]
cmp edx, dword [esp + 0x168]
mov dword [esp + ecx*4 + 0xd4], edx
mov edx, 0
adc edx, 0
add ecx, 0xffffffff
add edx, dword [esp + 0x164]
mov dword [esp + ecx*4 + 0xd4], edx
add esi, 0xffffffff
jne 0x43be4b
mov esi, dword [esp + 0x158]
mov dword [esp + ecx*4 + 0x114], 0
add ecx, 0xffffffff
test ecx, ecx
jl 0x43bf4d
cmp ecx, 6
jl 0x43bf36
xor eax, eax
mov dword [esp + ecx*4 + 0x114], eax
mov dword [esp + ecx*4 + 0xd4], eax
mov dword [esp + ecx*4 + 0x110], eax
mov dword [esp + ecx*4 + 0xd0], eax
mov dword [esp + ecx*4 + 0x10c], eax
mov dword [esp + ecx*4 + 0xcc], eax
mov dword [esp + ecx*4 + 0x108], eax
mov dword [esp + ecx*4 + 0xc8], eax
mov dword [esp + ecx*4 + 0x104], eax
mov dword [esp + ecx*4 + 0xc4], eax
add ecx, 0xfffffffb
cmp ecx, 6
jge 0x43bee6
xor eax, eax
mov dword [esp + ecx*4 + 0x114], eax
mov dword [esp + ecx*4 + 0xd4], eax
add ecx, 0xffffffff
test ecx, ecx
jge 0x43bf36
add ebx, 0xffffffff
je 0x43c037
mov dword [esp + 0x340], ebp
mov eax, ebx
mov dword [esp + 0xc4], edi
mov dword [esp + 0x158], esi
shl eax, 2
mov dword [esp + 0x504], eax
mov ebp, 0x10
lea ecx, [eax + 0x10]
mov eax, dword [esp + ebx*4 + 0x300]
mov edx, dword [esp + ebp + 0x4c4]
mov dword [esp + 0x630], eax
mov dword [esp + 0x634], edx
mov eax, dword [esp + 0x630]
mul dword [esp + 0x634]
mov dword [esp + 0x63c], eax
mov dword [esp + 0x638], edx
mov eax, dword [esp + ecx + 0xd4]
add eax, dword [esp + 0x63c]
cmp eax, dword [esp + 0x63c]
mov edx, dword [esp + ecx + 0xd0]
mov dword [esp + ecx + 0xd4], eax
mov esi, 0
adc esi, 0
mov edi, 0
add esi, dword [esp + 0x638]
add edx, esi
cmp edx, esi
adc edi, 0
mov dword [esp + ecx + 0xd0], edx
add dword [esp + ecx + 0x10c], edi
add ecx, 0xfffffffc
add ebp, 0xfffffffc
jne 0x43bf7f
mov eax, dword [esp + 0x504]
add eax, 0xfffffffc
add ebx, 0xffffffff
jne 0x43bf70
mov ebp, dword [esp + 0x340]
mov edi, dword [esp + 0xc4]
mov esi, dword [esp + 0x158]
add esi, dword [esp + 0x90]
mov ebx, dword [esp + 0x84]
mov edx, dword [esp + ebx*4 + 0xd4]
mov eax, dword [esp + 0xc0]
mov dword [esp + ebx*4 + 0x300], edx
test eax, eax
je 0x43c099
mov edx, ebx
xor eax, eax
lea edx, [edx - 1]
add eax, dword [esp + edx*4 + 0x114]
mov ecx, dword [esp + edx*4 + 0xd4]
add ecx, eax
cmp ecx, eax
mov dword [esp + edx*4 + 0x300], ecx
mov eax, 0
adc eax, 0
add edx, 0xffffffff
jne 0x43c065
mov eax, dword [esp + 0x84]
mov edx, dword [esp + eax*4 + 0x300]
test edx, edx
jne 0x43c0ab
add ebx, 0xffffffff
mov eax, dword [esp + ebx*4 + 0x300]
test eax, eax
je 0x43c09d
mov eax, dword [esp + 0x304]
test eax, eax
jle 0x43c195
add eax, eax
mov dword [esp + 0x304], eax
add esi, 0xffffffff
cmp ebx, 2
jb 0x43c195
lea eax, [ebx - 2]
cmp eax, 5
jb 0x43d39e
mov dword [esp + 0x158], esi
mov edx, 2
lea eax, [ebx - 5]
mov ecx, dword [esp + edx*4 + 0x300]
mov esi, dword [esp + edx*4 + 0x304]
shr ecx, 0x1f
shr esi, 0x1f
or dword [esp + edx*4 + 0x2fc], ecx
mov ecx, dword [esp + edx*4 + 0x300]
add ecx, ecx
or ecx, esi
mov esi, dword [esp + edx*4 + 0x304]
mov dword [esp + edx*4 + 0x300], ecx
mov ecx, dword [esp + edx*4 + 0x308]
add esi, esi
shr ecx, 0x1f
or esi, ecx
mov ecx, dword [esp + edx*4 + 0x30c]
mov dword [esp + edx*4 + 0x304], esi
mov esi, dword [esp + edx*4 + 0x308]
add esi, esi
shr ecx, 0x1f
or esi, ecx
mov ecx, dword [esp + edx*4 + 0x30c]
add ecx, ecx
mov dword [esp + edx*4 + 0x308], esi
mov dword [esp + edx*4 + 0x30c], ecx
add edx, 4
cmp edx, eax
jbe 0x43c0ea
mov esi, dword [esp + 0x158]
mov eax, dword [esp + edx*4 + 0x300]
mov ecx, dword [esp + edx*4 + 0x300]
shr eax, 0x1f
or dword [esp + edx*4 + 0x2fc], eax
add ecx, ecx
mov dword [esp + edx*4 + 0x300], ecx
add edx, 1
cmp edx, ebx
jbe 0x43c16d
mov eax, dword [esp + ebx*4 + 0x300]
test eax, eax
jne 0x43c1a3
add ebx, 0xffffffff
mov edx, dword [esp + 0xc8]
mov eax, edx
shr eax, 5
mov dword [esp + 0xc0], eax
and edx, 0x1f
mov dword [esp + 0x430], edx
xor ecx, ecx
cmp ecx, edx
adc ecx, 0
mov dword [esp + 0x84], ecx
lea eax, [eax + ecx]
cmp ebx, eax
jb 0x43c343
mov edx, ecx
mov ebx, eax
test edx, edx
je 0x43c1fd
mov ecx, dword [esp + 0x430]
neg ecx
add ecx, 0x1f
mov edx, 1
shl edx, cl
mov dword [esp + 0x504], edx
jmp 0x43c20e
mov edx, dword [esp + eax*4 + 0x304]
shr edx, 0x1f
mov dword [esp + 0x504], edx
test eax, eax
je 0x43c2eb
mov edx, dword [esp + eax*4 + 0x300]
mov ecx, dword [esp + 0x504]
add edx, ecx
mov dword [esp + 0x430], edx
cmp edx, ecx
jae 0x43c29b
mov ecx, dword [esp + 0x84]
mov dword [esp + eax*4 + 0x300], edx
mov eax, dword [esp + 0xc0]
mov dword [esp + 0x300], 0
lea ebx, [eax + ecx - 1]
mov eax, dword [esp + ebx*4 + 0x300]
cmp eax, 0xffffffff
jne 0x43c270
mov eax, dword [esp + ebx*4 + 0x2fc]
add ebx, 0xffffffff
cmp eax, 0xffffffff
je 0x43c261
test ebx, ebx
je 0x43c283
add eax, 1
mov dword [esp + ebx*4 + 0x300], eax
jmp 0x43c343
mov dword [esp + 0x304], 0x80000000
add esi, 1
mov ebx, 1
jmp 0x43c343
mov edx, dword [esp + 0x84]
test edx, edx
je 0x43c2c7
mov edx, ecx
lea ecx, [edx + edx - 1]
mov edx, dword [esp + 0x430]
not ecx
and edx, ecx
mov dword [esp + 0x430], edx
mov dword [esp + eax*4 + 0x300], edx
jmp 0x43c2d5
mov edx, dword [esp + 0x430]
mov dword [esp + eax*4 + 0x300], edx
mov eax, edx
test eax, eax
jne 0x43c343
mov eax, dword [esp + ebx*4 + 0x2fc]
add ebx, 0xffffffff
test eax, eax
je 0x43c2db
jmp 0x43c343
mov eax, edx
mov ebx, eax
add esi, eax
shl eax, 0x1f
mov dword [esp + 0x304], eax
jmp 0x43c343
movsx esi, word [ebp*2 + 0x495afc]
mov ebx, ebp
shl ebx, 4
mov eax, dword [ebx + 0x49594c]
mov edx, dword [ebx + 0x495948]
mov ecx, dword [ebx + 0x495944]
mov dword [esp + 0x304], eax
mov eax, dword [ebx + 0x495940]
mov ebx, 4
mov dword [esp + 0x308], edx
mov dword [esp + 0x30c], ecx
mov dword [esp + 0x310], eax
mov eax, dword [esp + 0x154]
sar eax, 1
add ebp, 0xffffffff
test ebp, ebp
jl 0x43bd2a
cmp edi, eax
jl 0x43c34a
mov dword [esp + 0x154], eax
jmp 0x43bd96
xor ebx, ebx
cmp edi, 0xffffffe5
jl 0x43c8fc
test edi, edi
jge 0x43c875
movsx eax, word [edi*2 + 0x495ade]
mov dword [esp + 0x154], eax
shl edi, 4
mov edx, dword [edi + 0x4957bc]
mov ecx, dword [edi + 0x4957b8]
mov ebp, dword [edi + 0x4957b4]
mov edi, dword [edi + 0x4957b0]
mov dword [esp + 0x5e4], edx
test edi, edi
mov dword [esp + 0x5e8], ecx
mov dword [esp + 0x5ec], ebp
mov dword [esp + 0x5f0], edi
jne 0x43d809
mov edi, 4
mov eax, dword [esp + edi*4 + 0x5dc]
add edi, 0xffffffff
test eax, eax
je 0x43c3cd
test ebx, ebx
je 0x43c613
mov dword [esp + 0x6c], eax
mov eax, dword [esp + ebx*4 + 0x300]
mov dword [esp + 0x68], eax
lea ecx, [ebx + edi]
mov dword [esp + 0x84], ecx
lea ecx, [ebx + edi - 1]
mov eax, dword [esp + 0x6c]
mul dword [esp + 0x68]
mov dword [esp + 0x64], eax
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x64]
mov ebp, dword [esp + 0x60]
mov eax, ecx
shl eax, 2
mov dword [esp + eax + 0x2c4], edx
mov edx, ebx
add edx, 0xffffffff
mov dword [esp + eax + 0x2c0], ebp
je 0x43c4bf
lea ebp, [ebx - 1]
mov eax, dword [esp + edi*4 + 0x5e0]
mov edx, dword [esp + ebp*4 + 0x300]
mov dword [esp + ecx*4 + 0x280], 0
mov dword [esp + 0x354], eax
mov dword [esp + 0x358], edx
mov eax, dword [esp + 0x354]
mul dword [esp + 0x358]
mov dword [esp + 0x360], eax
mov dword [esp + 0x35c], edx
mov eax, dword [esp + ecx*4 + 0x2c0]
add eax, dword [esp + 0x360]
cmp eax, dword [esp + 0x360]
mov dword [esp + ecx*4 + 0x2c0], eax
mov edx, 0
adc edx, 0
add ecx, 0xffffffff
mov eax, ecx
shl eax, 2
add edx, dword [esp + 0x35c]
mov dword [esp + eax + 0x2c0], edx
add ebp, 0xffffffff
jne 0x43c439
mov dword [esp + eax + 0x280], 0
add ecx, 0xffffffff
test ecx, ecx
jl 0x43c53d
cmp ecx, 6
jl 0x43c526
xor eax, eax
mov dword [esp + ecx*4 + 0x280], eax
mov dword [esp + ecx*4 + 0x2c0], eax
mov dword [esp + ecx*4 + 0x27c], eax
mov dword [esp + ecx*4 + 0x2bc], eax
mov dword [esp + ecx*4 + 0x278], eax
mov dword [esp + ecx*4 + 0x2b8], eax
mov dword [esp + ecx*4 + 0x274], eax
mov dword [esp + ecx*4 + 0x2b4], eax
mov dword [esp + ecx*4 + 0x270], eax
mov dword [esp + ecx*4 + 0x2b0], eax
add ecx, 0xfffffffb
cmp ecx, 6
jge 0x43c4d6
xor eax, eax
mov dword [esp + ecx*4 + 0x280], eax
mov dword [esp + ecx*4 + 0x2c0], eax
add ecx, 0xffffffff
test ecx, ecx
jge 0x43c526
add edi, 0xffffffff
je 0x43d3af
mov dword [esp + 0x428], esi
mov esi, ebx
test ebx, ebx
je 0x43d632
mov dword [esp + 0x42c], ebx
mov eax, edi
shl eax, 2
mov ebp, esi
shl ebp, 2
lea ecx, [eax + esi*4]
mov eax, dword [esp + edi*4 + 0x5e0]
mov edx, dword [esp + ebp + 0x300]
mov dword [esp + 0x660], eax
mov dword [esp + 0x664], edx
mov eax, dword [esp + 0x660]
mul dword [esp + 0x664]
mov dword [esp + 0x66c], eax
mov dword [esp + 0x668], edx
mov eax, dword [esp + ecx + 0x2c0]
add eax, dword [esp + 0x66c]
cmp eax, dword [esp + 0x66c]
mov edx, dword [esp + ecx + 0x2bc]
mov dword [esp + ecx + 0x2c0], eax
mov ebx, 0
adc ebx, 0
mov eax, 0
add ebp, 0xfffffffc
add ebx, dword [esp + 0x668]
add edx, ebx
cmp edx, ebx
adc eax, 0
mov dword [esp + ecx + 0x2bc], edx
add dword [esp + ecx + 0x278], eax
add ecx, 0xfffffffc
add esi, 0xffffffff
jne 0x43c56b
mov ebx, dword [esp + 0x42c]
add edi, 0xffffffff
jne 0x43c54d
jmp 0x43d3a8
mov edx, dword [esp + 0xa8]
mov ebx, dword [esp + edx*4 + 0x520]
mov dword [esp + 0x94], ebx
mov dword [esp + 0x98], eax
lea ecx, [edi + edx]
mov dword [esp + 0x504], ecx
lea ecx, [edi + edx - 1]
mov dword [esp + 0x340], ecx
mov eax, dword [esp + 0x94]
mul dword [esp + 0x98]
mov dword [esp + 0xa0], eax
mov dword [esp + 0x9c], edx
mov eax, dword [esp + 0xa0]
mov ebx, dword [esp + 0x340]
mov edx, dword [esp + 0x9c]
mov ebp, edi
add ebp, 0xffffffff
mov dword [esp + ebx*4 + 0x5a4], eax
mov dword [esp + ebx*4 + 0x5a0], edx
je 0x43d7ff
mov ebp, dword [esp + 0xa8]
lea ebx, [edi - 1]
mov eax, dword [esp + ebp*4 + 0x520]
mov edx, dword [esp + ebx*4 + 0x5e0]
mov dword [esp + ecx*4 + 0x560], 0
mov dword [esp + 0x620], eax
mov dword [esp + 0x624], edx
mov eax, dword [esp + 0x620]
mul dword [esp + 0x624]
mov dword [esp + 0x62c], eax
mov dword [esp + 0x628], edx
mov eax, dword [esp + ecx*4 + 0x5a0]
add eax, dword [esp + 0x62c]
cmp eax, dword [esp + 0x62c]
mov dword [esp + ecx*4 + 0x5a0], eax
mov edx, 0
adc edx, 0
add ecx, 0xffffffff
mov eax, ecx
shl eax, 2
add edx, dword [esp + 0x628]
mov dword [esp + eax + 0x5a0], edx
add ebx, 0xffffffff
jne 0x43c698
mov dword [esp + eax + 0x560], 0
add ecx, 0xffffffff
test ecx, ecx
jl 0x43c79c
cmp ecx, 6
jl 0x43c785
xor eax, eax
mov dword [esp + ecx*4 + 0x560], eax
mov dword [esp + ecx*4 + 0x5a0], eax
mov dword [esp + ecx*4 + 0x55c], eax
mov dword [esp + ecx*4 + 0x59c], eax
mov dword [esp + ecx*4 + 0x558], eax
mov dword [esp + ecx*4 + 0x598], eax
mov dword [esp + ecx*4 + 0x554], eax
mov dword [esp + ecx*4 + 0x594], eax
mov dword [esp + ecx*4 + 0x550], eax
mov dword [esp + ecx*4 + 0x590], eax
add ecx, 0xfffffffb
cmp ecx, 6
jge 0x43c735
xor eax, eax
mov dword [esp + ecx*4 + 0x560], eax
mov dword [esp + ecx*4 + 0x5a0], eax
add ecx, 0xffffffff
test ecx, ecx
jge 0x43c785
mov eax, dword [esp + 0x16c]
lea esi, [esi + eax - 1]
test esi, esi
je 0x43d647
mov ebp, edi
test edi, edi
je 0x43d7f1
mov dword [esp + 0xc4], edi
mov eax, esi
shl eax, 2
mov ebx, ebp
shl ebx, 2
lea ecx, [eax + ebp*4]
mov eax, dword [esp + esi*4 + 0x520]
mov edx, dword [esp + ebx + 0x5e0]
mov dword [esp + 0x69c], eax
mov dword [esp + 0x698], edx
mov eax, dword [esp + 0x69c]
mul dword [esp + 0x698]
mov dword [esp + 0x690], eax
mov dword [esp + 0x694], edx
mov eax, dword [esp + ecx + 0x5a0]
add eax, dword [esp + 0x690]
cmp eax, dword [esp + 0x690]
mov edx, dword [esp + ecx + 0x59c]
mov dword [esp + ecx + 0x5a0], eax
mov edi, 0
adc edi, 0
mov eax, 0
add ebx, 0xfffffffc
add edi, dword [esp + 0x694]
add edx, edi
cmp edx, edi
adc eax, 0
mov dword [esp + ecx + 0x59c], edx
add dword [esp + ecx + 0x558], eax
add ecx, 0xfffffffc
add ebp, 0xffffffff
jne 0x43c7cd
mov edi, dword [esp + 0xc4]
add esi, 0xffffffff
jne 0x43c7af
jmp 0x43d647
jl 0x43c8fc
cmp edi, 0x37
jl 0x43c8f8
mov edx, edi
sar edx, 3
lea ecx, [edx + edx]
movzx eax, word [ecx + 0x495a22]
shr eax, 5
cmp eax, edi
jg 0x43c89a
lea ecx, [edx + edx + 2]
movzx edx, word [ecx + 0x495a20]
mov eax, edx
and eax, 0x1f
movsx ecx, word [eax*2 + 0x495b04]
shr edx, 5
sub edi, edx
mov dword [esp + 0x90], ecx
shl eax, 4
mov ebp, dword [eax + 0x49598c]
mov edx, dword [eax + 0x495988]
mov dword [esp + 0x4c8], ebp
mov dword [esp + 0x4cc], edx
mov edx, dword [eax + 0x495984]
mov eax, dword [eax + 0x495980]
mov dword [esp + 0x4d0], edx
mov dword [esp + 0x4d4], eax
mov ebp, 4
jmp 0x43c973
xor ebp, ebp
jmp 0x43c973
mov edx, edi
neg edx
mov ecx, edx
sar ecx, 3
movzx eax, word [ecx*2 + 0x4958a0]
mov ebp, eax
shr ebp, 5
cmp ebp, edx
jge 0x43c923
movzx eax, word [ecx*2 + 0x4958a2]
mov ebp, eax
shr ebp, 5
and eax, 0x1f
movsx edx, word [eax*2 + 0x495ae8]
mov dword [esp + 0x90], edx
add edi, ebp
shl eax, 4
mov ecx, dword [eax + 0x49580c]
mov ebp, dword [eax + 0x495808]
mov edx, dword [eax + 0x495804]
mov eax, dword [eax + 0x495800]
mov dword [esp + 0x4c8], ecx
mov dword [esp + 0x4cc], ebp
mov dword [esp + 0x4d0], edx
mov ebp, 4
mov dword [esp + 0x4d4], eax
cmp edi, 0x37
je 0x43e123
lea edx, [edi - 0x1b]
test edx, edx
jle 0x43c9dc
movsx eax, word [edx*2 + 0x495e7e]
mov ecx, dword [edx*8 + 0x495c9c]
mov edi, dword [edx*8 + 0x495c98]
mov dword [esp + 0x80], eax
test edi, edi
mov dword [esp + 0x368], ecx
mov dword [esp + 0x36c], edi
jne 0x43e10d
mov eax, 2
mov dword [esp + 0x424], eax
add eax, 0xffffffff
mov ecx, dword [esp + eax*4 + 0x364]
test ecx, ecx
je 0x43c9c2
mov dword [esp + 0x424], eax
mov edi, 0x1b
movsx eax, word [edi*2 + 0x495e7e]
mov ecx, dword [edi*8 + 0x495c9c]
mov edi, dword [edi*8 + 0x495c98]
mov dword [esp + 0x154], eax
test edi, edi
mov dword [esp + 0x5e4], ecx
mov dword [esp + 0x5e8], edi
jne 0x43e0fc
mov edi, 2
mov eax, dword [esp + edi*4 + 0x5dc]
add edi, 0xffffffff
test eax, eax
je 0x43ca14
test edx, edx
jle 0x43db07
mov edx, dword [esp + 0x424]
mov dword [esp + 0x70], eax
mov eax, dword [esp + edx*4 + 0x364]
lea ecx, [edx + edi]
mov dword [esp + 0xc0], ecx
mov dword [esp + 0x74], eax
lea ecx, [edx + edi - 1]
mov dword [esp + 0x84], ecx
mov eax, dword [esp + 0x70]
mul dword [esp + 0x74]
mov dword [esp + 0x7c], eax
mov dword [esp + 0x78], edx
mov edx, dword [esp + 0x7c]
mov eax, dword [esp + 0x84]
mov dword [esp + eax*4 + 0x3a8], edx
mov edx, dword [esp + 0x78]
mov dword [esp + eax*4 + 0x3a4], edx
mov eax, dword [esp + 0x424]
add eax, 0xffffffff
je 0x43e0ed
mov eax, dword [esp + 0x424]
mov dword [esp + 0x428], esi
lea eax, [eax - 1]
mov esi, eax
mov edx, dword [esp + edi*4 + 0x5e0]
mov dword [esp + ecx*4 + 0x3e4], 0
mov dword [esp + 0x434], edx
mov edx, dword [esp + esi*4 + 0x364]
mov dword [esp + 0x438], edx
mov eax, dword [esp + 0x434]
mul dword [esp + 0x438]
mov dword [esp + 0x440], eax
mov dword [esp + 0x43c], edx
mov edx, dword [esp + ecx*4 + 0x3a4]
add edx, dword [esp + 0x440]
cmp edx, dword [esp + 0x440]
mov dword [esp + ecx*4 + 0x3a4], edx
mov edx, 0
adc edx, 0
add ecx, 0xffffffff
mov eax, ecx
shl eax, 2
add edx, dword [esp + 0x43c]
mov dword [esp + eax + 0x3a4], edx
add esi, 0xffffffff
jne 0x43caa5
mov esi, dword [esp + 0x428]
mov dword [esp + eax + 0x3e4], 0
add ecx, 0xffffffff
test ecx, ecx
jl 0x43cbb0
cmp ecx, 6
jl 0x43cb99
xor eax, eax
mov dword [esp + ecx*4 + 0x3e4], eax
mov dword [esp + ecx*4 + 0x3a4], eax
mov dword [esp + ecx*4 + 0x3e0], eax
mov dword [esp + ecx*4 + 0x3a0], eax
mov dword [esp + ecx*4 + 0x3dc], eax
mov dword [esp + ecx*4 + 0x39c], eax
mov dword [esp + ecx*4 + 0x3d8], eax
mov dword [esp + ecx*4 + 0x398], eax
mov dword [esp + ecx*4 + 0x3d4], eax
mov dword [esp + ecx*4 + 0x394], eax
add ecx, 0xfffffffb
cmp ecx, 6
jge 0x43cb49
xor eax, eax
mov dword [esp + ecx*4 + 0x3e4], eax
mov dword [esp + ecx*4 + 0x3a4], eax
add ecx, 0xffffffff
test ecx, ecx
jge 0x43cb99
add edi, 0xffffffff
je 0x43d836
mov edx, dword [esp + 0x424]
mov dword [esp + 0x430], ebp
mov dword [esp + 0x42c], ebx
mov dword [esp + 0x428], esi
mov ebp, edx
test edx, edx
je 0x43e0c3
mov dword [esp + 0x424], edx
mov eax, edi
shl eax, 2
mov ebx, ebp
shl ebx, 2
lea ecx, [eax + ebp*4]
mov eax, dword [esp + edi*4 + 0x5e0]
mov edx, dword [esp + ebx + 0x364]
mov dword [esp + 0x670], eax
mov dword [esp + 0x674], edx
mov eax, dword [esp + 0x670]
mul dword [esp + 0x674]
mov dword [esp + 0x67c], eax
mov dword [esp + 0x678], edx
mov eax, dword [esp + ecx + 0x3a4]
add eax, dword [esp + 0x67c]
cmp eax, dword [esp + 0x67c]
mov edx, dword [esp + ecx + 0x3a0]
mov dword [esp + ecx + 0x3a4], eax
mov esi, 0
adc esi, 0
mov eax, 0
add ebx, 0xfffffffc
add esi, dword [esp + 0x678]
add edx, esi
cmp edx, esi
adc eax, 0
mov dword [esp + ecx + 0x3a0], edx
add dword [esp + ecx + 0x3dc], eax
add ecx, 0xfffffffc
add ebp, 0xffffffff
jne 0x43cbf3
mov edx, dword [esp + 0x424]
add edi, 0xffffffff
jne 0x43cbd5
jmp 0x43d81a
shl ebp, 0x10
mov ecx, esi
shr ecx, 0x10
or ebp, ecx
shl esi, 0x10
mov ebx, edx
shr ebx, 0x10
or esi, ebx
shl edx, 0x10
mov edi, eax
shr edi, 0x10
or edx, edi
shl eax, 0x10
test ebp, ebp
jne 0x43e17a
mov ecx, dword [esp + 0xcc]
jmp 0x43cccf
xor eax, eax
mov ebp, esi
mov esi, edx
mov edx, eax
add ecx, 0xffffffe0
test ebp, ebp
je 0x43cccd
jmp 0x43e16e
mov dword [esp + 0xc8], ecx
mov dword [esp + 0x428], esi
mov ecx, 0
mov dword [esp + 0xa8], ecx
jle 0x43a474
xor ecx, ecx
mov dword [esp + 0xcc], ecx
add edx, edx
add ecx, 1
test edx, edx
jg 0x43cd0a
mov dword [esp + 0xcc], ecx
test ecx, ecx
je 0x43a474
mov dword [esp + 0x14], ebx
mov ebx, ecx
sub eax, ebx
mov dword [esp + 0x430], eax
mov eax, dword [esp + 0xc8]
mov ecx, ebx
neg ecx
mov dword [esp + 0x42c], ecx
mov esi, eax
shr esi, cl
mov ecx, ebx
shl eax, cl
mov ecx, dword [esp + 0x42c]
or edx, esi
mov esi, dword [esp + 0xa8]
mov dword [esp + 0x504], edx
mov edx, dword [esp + 0x428]
mov edi, edx
shr edi, cl
mov ecx, ebx
shl edx, cl
or eax, edi
mov ecx, dword [esp + 0x42c]
mov dword [esp + 0xc8], eax
mov eax, esi
shr eax, cl
mov ecx, ebx
shl esi, cl
mov ebx, dword [esp + 0x14]
mov dword [esp + 0xa8], esi
or edx, eax
mov eax, dword [esp + 0x430]
mov dword [esp + 0x428], edx
mov edx, dword [esp + 0x504]
jmp 0x43a474
mov edx, dword [esp + 0x428]
mov dword [esp + 0x154], ebp
mov ebp, dword [esp + 0xc]
jmp 0x43a8f0
mov ecx, dword [esp + 0x1c]
add dword [ecx], ebx
add edx, 0xffffffff
mov ebx, dword [esp + 0x10]
test ebx, ebx
je 0x43aa5c
mov ebx, dword [esp + 0xb0]
mov ecx, dword [esp + 0x2c]
add ebx, 1
cmp ecx, ebx
jge 0x43cdf0
mov ebx, ecx
mov dword [esp + 0xb0], ebx
jmp 0x43aa5c
xor ebx, ebx
mov dword [esp + 0xcc], ebx
jmp 0x43a95a
xor ecx, ecx
mov dword [esp + 0xcc], ecx
jmp 0x43a97d
xor ecx, ecx
mov dword [esp + 0x154], ecx
mov ecx, 1
jmp 0x43a8f2
mov edi, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0xa4]
cmp eax, edi
jl 0x43ce40
mov eax, edi
mov edi, ecx
sar edi, 1
shr edi, 0x1e
add edi, ecx
sar edi, 2
add edi, eax
shl eax, 2
mov dword [esp + 0xb0], edi
neg eax
mov dword [esp + 0xcc], eax
cmp ecx, eax
jge 0x43ce6b
mov eax, edi
test eax, eax
jl 0x43ce7b
mov dword [esp + 0x520], 0
jmp 0x43a72a
mov eax, dword [esp + 0xac]
mov edx, dword [esp + 0xb4]
add dword [esp + 0xcc], 4
lea ecx, [eax*8 + 4]
shr edx, cl
test dl, 1
je 0x43a33c
mov eax, dword [esp + 0xb8]
lea eax, [eax + 1]
mov edx, dword [esp + 0xb8]
mov ecx, dword [esp + 0xcc]
mov ebx, dword [esp + 0x1c]
mov byte [edx], 0x31
mov dword [ebx], ecx
xor ecx, ecx
jmp 0x43aaa4
mov eax, dword [esp + 0xb8]
lea eax, [eax + 1]
jmp 0x43a38b
mov dword [esp + 0xa4], edi
mov dword [esp + 0x428], ecx
mov edx, 0
mov dword [esp + 0xc8], edx
jle 0x43a632
xor edx, edx
mov dword [esp + 0xcc], edx
add esi, esi
add edx, 1
test esi, esi
jg 0x43cf03
mov dword [esp + 0xcc], edx
test edx, edx
je 0x43a632
mov dword [esp + 0x14], ebx
mov ebx, dword [esp + 0xa4]
sub ebx, edx
mov ecx, edx
mov dword [esp + 0xa4], ebx
neg ecx
mov dword [esp + 0x430], ecx
mov edi, eax
shr edi, cl
mov ecx, edx
shl eax, cl
or esi, edi
mov ecx, dword [esp + 0x430]
mov dword [esp + 0x42c], esi
mov esi, dword [esp + 0x428]
mov ebx, esi
shr ebx, cl
mov ecx, edx
shl esi, cl
or eax, ebx
mov ecx, dword [esp + 0x430]
mov ebx, dword [esp + 0xc8]
mov dword [esp + 0x504], eax
mov eax, ebx
shr eax, cl
mov ecx, edx
shl ebx, cl
or esi, eax
mov eax, dword [esp + 0x504]
mov dword [esp + 0x428], esi
mov esi, dword [esp + 0x42c]
mov dword [esp + 0xc8], ebx
mov ebx, dword [esp + 0x14]
jmp 0x43a632
mov eax, dword [esp + 0x14]
test al, 2
jne 0x43cfd3
test al, 0x41
je 0x43cfb9
mov eax, ecx
test eax, eax
jl 0x43cfd3
mov eax, dword [esp + 0x14]
test al, 0x14
jne 0x43cfdc
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0xa4]
mov dword [edx], eax
jmp 0x43ac44
mov ebp, dword [esp + 0xc]
jmp 0x43a33c
mov eax, dword [esp + 0xbc]
mov ebp, dword [esp + 0xc]
mov ebx, dword [esp + 0xac]
mov esi, dword [esp + 0xb4]
lea ecx, [ebx*8 + 4]
shr esi, cl
test esi, 1
je 0x43a33c
mov ebp, edx
mov esi, ebp
neg esi
xor ecx, ecx
test ebp, ebp
sete cl
add ecx, esi
mov dword [esp + 0xcc], ecx
jmp 0x43cead
mov eax, dword [esp + 0xbc]
jmp 0x43a38b
mov eax, dword [esp + 0x16c]
mov esi, dword [esp + 0x340]
mov edx, dword [esp + 0x428]
mov ebp, dword [esp + 0xc]
mov ecx, 0x39
mov ebx, 1
mov dword [esp + 0x424], ecx
mov dword [esp + 0x158], ebx
jmp 0x43a9f1
mov ecx, dword [esp + 0xc0]
mov eax, dword [esp + 0x16c]
mov edx, dword [esp + 0x428]
mov ebp, dword [esp + 0xc]
add ecx, 1
mov esi, dword [esp + 0xb4]
shr esi, cl
mov ebx, 0x39
mov dword [esp + 0x424], ebx
and esi, 1
mov edi, 1
mov dword [esp + 0x158], edi
mov ebx, 1
jmp 0x43a9f1
mov esi, dword [esp + 0x520]
xor ebx, ebx
jmp 0x43aece
mov ebp, 0
jle 0x43aca9
xor edx, edx
mov dword [esp + 0x504], edx
add edi, edi
add edx, 1
test edi, edi
jg 0x43d0d3
mov dword [esp + 0x504], edx
test edx, edx
je 0x43aca9
sub ebx, edx
mov dword [esp + 0xcc], ebx
mov ecx, edx
neg ecx
mov ebx, eax
mov dword [esp + 0x430], ecx
shr ebx, cl
mov ecx, edx
shl eax, cl
mov ecx, dword [esp + 0x430]
or edi, ebx
mov ebx, esi
shr ebx, cl
mov ecx, edx
shl esi, cl
or eax, ebx
mov ecx, dword [esp + 0x430]
mov ebx, ebp
shr ebx, cl
mov ecx, edx
shl ebp, cl
or esi, ebx
mov ebx, dword [esp + 0xcc]
jmp 0x43aca9
mov eax, dword [esp + 0x5e8]
mov edi, 2
jmp 0x43c613
mov edi, eax
mov eax, dword [esp + 0x5e4]
test eax, eax
jle 0x43d239
add dword [esp + 0x154], 0xffffffff
add eax, eax
cmp edi, 2
mov dword [esp + 0x5e4], eax
jb 0x43d377
lea eax, [edi - 2]
cmp eax, 5
jb 0x43d36d
mov edx, 2
lea eax, [edi - 5]
mov ebx, dword [esp + edx*4 + 0x5e0]
mov ebp, dword [esp + edx*4 + 0x5e4]
shr ebx, 0x1f
shr ebp, 0x1f
or dword [esp + edx*4 + 0x5dc], ebx
mov ebx, dword [esp + edx*4 + 0x5e0]
add ebx, ebx
or ebx, ebp
mov ebp, dword [esp + edx*4 + 0x5e4]
mov dword [esp + edx*4 + 0x5e0], ebx
mov ebx, dword [esp + edx*4 + 0x5e8]
add ebp, ebp
shr ebx, 0x1f
or ebp, ebx
mov ebx, dword [esp + edx*4 + 0x5ec]
mov dword [esp + edx*4 + 0x5e4], ebp
mov ebp, dword [esp + edx*4 + 0x5e8]
add ebp, ebp
shr ebx, 0x1f
or ebp, ebx
mov ebx, dword [esp + edx*4 + 0x5ec]
add ebx, ebx
mov dword [esp + edx*4 + 0x5e8], ebp
mov dword [esp + edx*4 + 0x5ec], ebx
add edx, 4
cmp edx, eax
jbe 0x43d187
mov eax, dword [esp + edx*4 + 0x5e0]
mov ebx, dword [esp + edx*4 + 0x5e0]
shr eax, 0x1f
or dword [esp + edx*4 + 0x5dc], eax
add ebx, ebx
mov dword [esp + edx*4 + 0x5e0], ebx
add edx, 1
cmp edx, edi
jbe 0x43d203
mov eax, dword [esp + ecx + 0x5e0]
test eax, eax
jne 0x43d239
add edi, 0xffffffff
mov ecx, dword [esp + 0xc8]
mov ebp, ecx
shr ebp, 5
and ecx, 0x1f
xor ebx, ebx
cmp ebx, ecx
adc ebx, 0
lea edx, [ebp + ebx]
cmp edi, edx
jb 0x43d361
mov edi, edx
test ebx, ebx
je 0x43d276
neg ecx
add ecx, 0x1f
mov eax, 1
shl eax, cl
mov dword [esp + 0x504], eax
jmp 0x43d287
mov eax, dword [esp + edx*4 + 0x5e4]
shr eax, 0x1f
mov dword [esp + 0x504], eax
test edx, edx
je 0x43d340
mov eax, dword [esp + edx*4 + 0x5e0]
mov ecx, dword [esp + 0x504]
add eax, ecx
cmp eax, ecx
jae 0x43d309
mov dword [esp + edx*4 + 0x5e0], eax
mov dword [esp + 0x5e0], 0
lea edi, [ebp + ebx - 1]
mov eax, dword [esp + edi*4 + 0x5e0]
cmp eax, 0xffffffff
jne 0x43d2d4
mov eax, dword [esp + edi*4 + 0x5dc]
add edi, 0xffffffff
cmp eax, 0xffffffff
je 0x43d2c5
test edi, edi
je 0x43d2e7
add eax, 1
mov dword [esp + edi*4 + 0x5e0], eax
jmp 0x43c613
add dword [esp + 0x154], 1
mov edi, 1
mov eax, 0x80000000
mov dword [esp + 0x5e4], 0x80000000
jmp 0x43c613
test ebx, ebx
je 0x43d31e
lea ebx, [ecx + ecx - 1]
not ebx
and eax, ebx
mov dword [esp + edx*4 + 0x5e0], eax
jmp 0x43d325
mov dword [esp + edx*4 + 0x5e0], eax
test eax, eax
jne 0x43c613
mov eax, dword [esp + edi*4 + 0x5dc]
add edi, 0xffffffff
test eax, eax
je 0x43d32d
jmp 0x43c613
mov edi, eax
add dword [esp + 0x154], edi
mov eax, edi
shl eax, 0x1f
mov dword [esp + 0x5e4], eax
mov eax, dword [esp + edi*4 + 0x5e0]
jmp 0x43c613
mov eax, dword [esp + edi*4 + 0x5e0]
jmp 0x43c613
mov edx, 2
jmp 0x43d203
mov eax, dword [esp + ecx + 0x5e0]
jmp 0x43d232
mov eax, dword [esp + 0x5e8]
mov ebp, 2
jmp 0x43b460
mov edx, 2
jmp 0x43bb30
mov edx, 2
jmp 0x43c16d
mov esi, dword [esp + 0x428]
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x154]
add ecx, dword [esp + 0x158]
mov edi, eax
mov dword [esp + 0x154], ecx
mov ecx, eax
shl ecx, 2
mov edx, dword [esp + ecx + 0x2c0]
add eax, 0xffffffff
mov dword [esp + ecx + 0x5e0], edx
mov dword [esp + 0x84], eax
je 0x43d41b
xor edx, edx
add edx, dword [esp + eax*4 + 0x280]
mov ebx, dword [esp + eax*4 + 0x2c0]
add ebx, edx
cmp ebx, edx
mov dword [esp + eax*4 + 0x5e0], ebx
mov edx, 0
adc edx, 0
add eax, 0xffffffff
jne 0x43d3ee
mov edx, dword [esp + ecx + 0x5e0]
test edx, edx
jne 0x43d444
mov eax, dword [esp + 0x84]
jmp 0x43d42b
add eax, 0xffffffff
mov ecx, eax
shl ecx, 2
mov edx, dword [esp + ecx + 0x5e0]
test edx, edx
je 0x43d428
mov dword [esp + 0x84], eax
mov edi, eax
mov eax, dword [esp + 0x5e4]
test eax, eax
jle 0x43d533
add dword [esp + 0x154], 0xffffffff
add eax, eax
cmp edi, 2
mov dword [esp + 0x5e4], eax
jb 0x43d626
lea eax, [edi - 2]
cmp eax, 5
jb 0x43d61c
mov edx, 2
lea eax, [edi - 5]
mov ebx, dword [esp + edx*4 + 0x5e0]
mov ebp, dword [esp + edx*4 + 0x5e4]
shr ebx, 0x1f
shr ebp, 0x1f
or dword [esp + edx*4 + 0x5dc], ebx
mov ebx, dword [esp + edx*4 + 0x5e0]
add ebx, ebx
or ebx, ebp
mov ebp, dword [esp + edx*4 + 0x5e4]
mov dword [esp + edx*4 + 0x5e0], ebx
mov ebx, dword [esp + edx*4 + 0x5e8]
add ebp, ebp
shr ebx, 0x1f
or ebp, ebx
mov ebx, dword [esp + edx*4 + 0x5ec]
mov dword [esp + edx*4 + 0x5e4], ebp
mov ebp, dword [esp + edx*4 + 0x5e8]
add ebp, ebp
shr ebx, 0x1f
or ebp, ebx
mov ebx, dword [esp + edx*4 + 0x5ec]
add ebx, ebx
mov dword [esp + edx*4 + 0x5e8], ebp
mov dword [esp + edx*4 + 0x5ec], ebx
add edx, 4
cmp edx, eax
jbe 0x43d481
mov eax, dword [esp + edx*4 + 0x5e0]
mov ebx, dword [esp + edx*4 + 0x5e0]
shr eax, 0x1f
or dword [esp + edx*4 + 0x5dc], eax
add ebx, ebx
mov dword [esp + edx*4 + 0x5e0], ebx
add edx, 1
cmp edx, edi
jbe 0x43d4fd
mov eax, dword [esp + ecx + 0x5e0]
test eax, eax
jne 0x43d533
add edi, 0xffffffff
mov ecx, dword [esp + 0xc8]
mov ebp, ecx
shr ebp, 5
and ecx, 0x1f
xor ebx, ebx
cmp ebx, ecx
adc ebx, 0
lea edx, [ebp + ebx]
cmp edi, edx
jb 0x43d361
mov edi, edx
test ebx, ebx
je 0x43d570
neg ecx
add ecx, 0x1f
mov eax, 1
shl eax, cl
mov dword [esp + 0x504], eax
jmp 0x43d581
mov eax, dword [esp + edx*4 + 0x5e4]
shr eax, 0x1f
mov dword [esp + 0x504], eax
test edx, edx
je 0x43d340
mov eax, dword [esp + edx*4 + 0x5e0]
mov ecx, dword [esp + 0x504]
add eax, ecx
cmp eax, ecx
jae 0x43d5e5
mov dword [esp + edx*4 + 0x5e0], eax
mov dword [esp + 0x5e0], 0
lea edi, [ebp + ebx - 1]
mov eax, dword [esp + edi*4 + 0x5e0]
cmp eax, 0xffffffff
jne 0x43d5ce
mov eax, dword [esp + edi*4 + 0x5dc]
add edi, 0xffffffff
cmp eax, 0xffffffff
je 0x43d5bf
test edi, edi
je 0x43d2e7
add eax, 1
mov dword [esp + edi*4 + 0x5e0], eax
jmp 0x43c613
test ebx, ebx
je 0x43d5fa
lea ebx, [ecx + ecx - 1]
not ebx
and eax, ebx
mov dword [esp + edx*4 + 0x5e0], eax
jmp 0x43d601
mov dword [esp + edx*4 + 0x5e0], eax
test eax, eax
jne 0x43c613
mov eax, dword [esp + edi*4 + 0x5dc]
add edi, 0xffffffff
test eax, eax
je 0x43d609
jmp 0x43c613
mov edx, 2
jmp 0x43d4fd
mov eax, dword [esp + ecx + 0x5e0]
jmp 0x43d52c
add edi, 0xffffffff
jne 0x43c54d
mov esi, dword [esp + 0x428]
jmp 0x43d3af
mov ecx, dword [esp + 0x154]
mov eax, dword [esp + 0x340]
add dword [esp + 0xcc], ecx
mov ecx, dword [esp + 0x504]
shl ecx, 2
mov edx, dword [esp + ecx + 0x5a0]
test eax, eax
mov dword [esp + ecx + 0x520], edx
je 0x43d6b1
mov eax, dword [esp + 0x504]
xor edx, edx
lea eax, [eax - 1]
add edx, dword [esp + eax*4 + 0x560]
mov ebx, dword [esp + eax*4 + 0x5a0]
add ebx, edx
cmp ebx, edx
mov dword [esp + eax*4 + 0x520], ebx
mov edx, 0
adc edx, 0
add eax, 0xffffffff
jne 0x43d684
mov edx, dword [esp + ecx + 0x520]
test edx, edx
jne 0x43d6d1
mov eax, dword [esp + 0x504]
add eax, 0xffffffff
mov edx, dword [esp + eax*4 + 0x520]
test edx, edx
je 0x43d6bc
mov dword [esp + 0x504], eax
mov eax, dword [esp + 0x524]
test eax, eax
jle 0x43d7c7
add dword [esp + 0xcc], 0xffffffff
add eax, eax
mov dword [esp + 0x524], eax
mov eax, dword [esp + 0x504]
cmp eax, 2
jb 0x43d7c7
lea edx, [eax - 2]
cmp edx, 5
jb 0x43d7ea
mov edx, 2
lea eax, [eax - 5]
mov ecx, dword [esp + edx*4 + 0x520]
mov ebp, dword [esp + edx*4 + 0x520]
mov ebx, dword [esp + edx*4 + 0x524]
mov edi, dword [esp + edx*4 + 0x524]
shr ecx, 0x1f
mov esi, dword [esp + edx*4 + 0x528]
or dword [esp + edx*4 + 0x51c], ecx
add ebp, ebp
shr ebx, 0x1f
mov ecx, dword [esp + edx*4 + 0x52c]
or ebp, ebx
mov ebx, dword [esp + edx*4 + 0x528]
mov dword [esp + edx*4 + 0x520], ebp
add edi, edi
shr esi, 0x1f
or edi, esi
add ebx, ebx
shr ecx, 0x1f
or ebx, ecx
mov ecx, dword [esp + edx*4 + 0x52c]
mov dword [esp + edx*4 + 0x524], edi
add ecx, ecx
mov dword [esp + edx*4 + 0x528], ebx
mov dword [esp + edx*4 + 0x52c], ecx
add edx, 4
cmp edx, eax
jbe 0x43d715
mov ebx, dword [esp + 0x504]
mov eax, dword [esp + edx*4 + 0x520]
mov ecx, dword [esp + edx*4 + 0x520]
shr eax, 0x1f
or dword [esp + edx*4 + 0x51c], eax
add ecx, ecx
mov dword [esp + edx*4 + 0x520], ecx
add edx, 1
cmp edx, ebx
jbe 0x43d798
mov dword [esp + 0x504], ebx
mov eax, dword [esp + 0x504]
mov edx, dword [esp + eax*4 + 0x520]
test edx, edx
jne 0x43ad09
add dword [esp + 0x504], 0xffffffff
jmp 0x43ad09
mov edx, 2
jmp 0x43d791
add esi, 0xffffffff
jne 0x43c7af
jmp 0x43d647
mov eax, ebx
shl eax, 2
jmp 0x43c71e
mov eax, dword [esp + 0x5f0]
mov edi, 4
jmp 0x43c3db
mov ebp, dword [esp + 0x430]
mov ebx, dword [esp + 0x42c]
mov esi, dword [esp + 0x428]
mov dword [esp + 0x424], edx
mov edi, dword [esp + 0xc0]
mov eax, dword [esp + 0x154]
add eax, dword [esp + 0x80]
mov edx, dword [esp + 0x84]
mov dword [esp + 0x154], eax
mov eax, dword [esp + edi*4 + 0x3a4]
test edx, edx
mov dword [esp + edi*4 + 0x5e0], eax
je 0x43d8a6
mov edx, edi
xor eax, eax
lea edx, [edx - 1]
add eax, dword [esp + edx*4 + 0x3e4]
mov ecx, dword [esp + edx*4 + 0x3a4]
add ecx, eax
cmp ecx, eax
mov dword [esp + edx*4 + 0x5e0], ecx
mov eax, 0
adc eax, 0
add edx, 0xffffffff
jne 0x43d872
mov eax, dword [esp + 0xc0]
mov eax, dword [esp + eax*4 + 0x5e0]
test eax, eax
jne 0x43d8b8
add edi, 0xffffffff
mov eax, dword [esp + edi*4 + 0x5e0]
test eax, eax
je 0x43d8aa
mov eax, dword [esp + 0x5e4]
test eax, eax
jle 0x43d9a7
add dword [esp + 0x154], 0xffffffff
add eax, eax
cmp edi, 2
mov dword [esp + 0x5e4], eax
jb 0x43d9a7
lea eax, [edi - 2]
cmp eax, 5
jb 0x43e0b9
mov dword [esp + 0x428], esi
mov edx, 2
lea eax, [edi - 5]
mov ecx, dword [esp + edx*4 + 0x5e0]
mov esi, dword [esp + edx*4 + 0x5e4]
shr ecx, 0x1f
shr esi, 0x1f
or dword [esp + edx*4 + 0x5dc], ecx
mov ecx, dword [esp + edx*4 + 0x5e0]
add ecx, ecx
or ecx, esi
mov esi, dword [esp + edx*4 + 0x5e4]
mov dword [esp + edx*4 + 0x5e0], ecx
mov ecx, dword [esp + edx*4 + 0x5e8]
add esi, esi
shr ecx, 0x1f
or esi, ecx
mov ecx, dword [esp + edx*4 + 0x5ec]
mov dword [esp + edx*4 + 0x5e4], esi
mov esi, dword [esp + edx*4 + 0x5e8]
add esi, esi
shr ecx, 0x1f
or esi, ecx
mov ecx, dword [esp + edx*4 + 0x5ec]
add ecx, ecx
mov dword [esp + edx*4 + 0x5e8], esi
mov dword [esp + edx*4 + 0x5ec], ecx
add edx, 4
cmp edx, eax
jbe 0x43d8fc
mov esi, dword [esp + 0x428]
mov eax, dword [esp + edx*4 + 0x5e0]
mov ecx, dword [esp + edx*4 + 0x5e0]
shr eax, 0x1f
or dword [esp + edx*4 + 0x5dc], eax
add ecx, ecx
mov dword [esp + edx*4 + 0x5e0], ecx
add edx, 1
cmp edx, edi
jbe 0x43d97f
mov eax, dword [esp + edi*4 + 0x5e0]
test eax, eax
jne 0x43d9b5
add edi, 0xffffffff
mov ecx, dword [esp + 0xc8]
mov eax, ecx
shr eax, 5
mov dword [esp + 0x84], eax
and ecx, 0x1f
xor edx, edx
cmp edx, ecx
adc edx, 0
mov dword [esp + 0x340], edx
lea edx, [eax + edx]
cmp edi, edx
jb 0x43db00
mov eax, dword [esp + 0x340]
mov edi, edx
test eax, eax
je 0x43da06
neg ecx
add ecx, 0x1f
mov eax, 1
shl eax, cl
mov dword [esp + 0x504], eax
jmp 0x43da17
mov eax, dword [esp + edx*4 + 0x5e4]
shr eax, 0x1f
mov dword [esp + 0x504], eax
test edx, edx
je 0x43dae2
mov eax, dword [esp + edx*4 + 0x5e0]
mov ecx, dword [esp + 0x504]
add eax, ecx
cmp eax, ecx
jae 0x43daa4
mov dword [esp + edx*4 + 0x5e0], eax
mov edx, dword [esp + 0x340]
mov eax, dword [esp + 0x84]
mov dword [esp + 0x5e0], 0
lea edi, [eax + edx - 1]
mov eax, dword [esp + edi*4 + 0x5e0]
cmp eax, 0xffffffff
jne 0x43da72
mov eax, dword [esp + edi*4 + 0x5dc]
add edi, 0xffffffff
cmp eax, 0xffffffff
je 0x43da63
test edi, edi
je 0x43da85
add eax, 1
mov dword [esp + edi*4 + 0x5e0], eax
jmp 0x43db07
add dword [esp + 0x154], 1
mov edi, 1
mov eax, 0x80000000
mov dword [esp + 0x5e4], 0x80000000
jmp 0x43db07
mov ecx, dword [esp + 0x340]
test ecx, ecx
je 0x43dac7
mov ecx, dword [esp + 0x504]
lea ecx, [ecx + ecx - 1]
not ecx
and eax, ecx
mov dword [esp + edx*4 + 0x5e0], eax
jmp 0x43dace
mov dword [esp + edx*4 + 0x5e0], eax
test eax, eax
jne 0x43db07
mov eax, dword [esp + edi*4 + 0x5dc]
add edi, 0xffffffff
test eax, eax
je 0x43dad2
jmp 0x43db07
mov edi, eax
add dword [esp + 0x154], edi
mov eax, edi
shl eax, 0x1f
mov dword [esp + 0x5e4], eax
mov eax, dword [esp + edi*4 + 0x5e0]
jmp 0x43db07
mov eax, dword [esp + edi*4 + 0x5e0]
test ebp, ebp
je 0x43c3db
mov dword [esp + 0x40], eax
mov eax, dword [esp + ebp*4 + 0x4c4]
mov dword [esp + 0x44], eax
lea edx, [edi + ebp]
mov dword [esp + 0x84], edx
lea ecx, [edi + ebp - 1]
mov dword [esp + 0x340], ecx
mov eax, dword [esp + 0x40]
mul dword [esp + 0x44]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x48], edx
mov eax, dword [esp + 0x340]
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x48]
shl eax, 2
mov dword [esp + 0x504], eax
mov dword [esp + eax + 0x174], edx
mov dword [esp + eax + 0x170], ecx
mov eax, ebp
add eax, 0xffffffff
je 0x43dc21
mov dword [esp + 0x428], esi
mov esi, dword [esp + 0x340]
lea ecx, [ebp - 1]
mov eax, dword [esp + edi*4 + 0x5e0]
mov edx, dword [esp + ecx*4 + 0x4c4]
mov dword [esp + esi*4 + 0x1b0], 0
mov dword [esp + 0x1f0], eax
mov dword [esp + 0x1f4], edx
mov eax, dword [esp + 0x1f0]
mul dword [esp + 0x1f4]
mov dword [esp + 0x1fc], eax
mov dword [esp + 0x1f8], edx
mov eax, dword [esp + esi*4 + 0x170]
add eax, dword [esp + 0x1fc]
cmp eax, dword [esp + 0x1fc]
mov dword [esp + esi*4 + 0x170], eax
mov edx, 0
adc edx, 0
add esi, 0xffffffff
mov eax, esi
shl eax, 2
add edx, dword [esp + 0x1f8]
mov dword [esp + eax + 0x170], edx
add ecx, 0xffffffff
jne 0x43db86
mov dword [esp + 0x340], esi
mov esi, dword [esp + 0x428]
mov dword [esp + 0x504], eax
mov eax, dword [esp + 0x504]
mov edx, dword [esp + 0x340]
mov dword [esp + eax + 0x1b0], 0
add edx, 0xffffffff
mov dword [esp + 0x340], edx
test edx, edx
jl 0x43dcbd
mov eax, edx
cmp eax, 6
jl 0x43dca6
xor eax, eax
mov dword [esp + edx*4 + 0x1b0], eax
mov dword [esp + edx*4 + 0x170], eax
mov dword [esp + edx*4 + 0x1ac], eax
mov dword [esp + edx*4 + 0x16c], eax
mov dword [esp + edx*4 + 0x1a8], eax
mov dword [esp + edx*4 + 0x168], eax
mov dword [esp + edx*4 + 0x1a4], eax
mov dword [esp + edx*4 + 0x164], eax
mov dword [esp + edx*4 + 0x1a0], eax
mov dword [esp + edx*4 + 0x160], eax
add edx, 0xfffffffb
cmp edx, 6
jge 0x43dc4f
mov dword [esp + 0x340], edx
xor eax, eax
mov dword [esp + edx*4 + 0x1b0], eax
mov dword [esp + edx*4 + 0x170], eax
add edx, 0xffffffff
test edx, edx
jge 0x43dca6
add edi, 0xffffffff
je 0x43dda3
mov dword [esp + 0x42c], ebx
mov dword [esp + 0x428], esi
mov esi, ebp
test ebp, ebp
je 0x43e09d
mov dword [esp + 0x430], ebp
mov eax, edi
shl eax, 2
mov ebx, esi
shl ebx, 2
lea ecx, [eax + esi*4]
mov eax, dword [esp + edi*4 + 0x5e0]
mov edx, dword [esp + ebx + 0x4c4]
mov dword [esp + 0x640], eax
mov dword [esp + 0x644], edx
mov eax, dword [esp + 0x640]
mul dword [esp + 0x644]
mov dword [esp + 0x64c], eax
mov dword [esp + 0x648], edx
mov eax, dword [esp + ecx + 0x170]
add eax, dword [esp + 0x64c]
cmp eax, dword [esp + 0x64c]
mov edx, dword [esp + ecx + 0x16c]
mov dword [esp + ecx + 0x170], eax
mov ebp, 0
adc ebp, 0
mov eax, 0
add ebx, 0xfffffffc
add ebp, dword [esp + 0x648]
add edx, ebp
cmp edx, ebp
adc eax, 0
mov dword [esp + ecx + 0x16c], edx
add dword [esp + ecx + 0x1a8], eax
add ecx, 0xfffffffc
add esi, 0xffffffff
jne 0x43dcf2
mov ebp, dword [esp + 0x430]
add edi, 0xffffffff
jne 0x43dcd4
mov ebx, dword [esp + 0x42c]
mov esi, dword [esp + 0x428]
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x154]
add ecx, dword [esp + 0x90]
mov edi, eax
mov dword [esp + 0x154], ecx
mov ecx, eax
shl ecx, 2
mov edx, dword [esp + ecx + 0x170]
add eax, 0xffffffff
mov dword [esp + ecx + 0x5e0], edx
mov dword [esp + 0x84], eax
je 0x43de11
mov edx, eax
xor eax, eax
add eax, dword [esp + edx*4 + 0x1b0]
mov ebp, dword [esp + edx*4 + 0x170]
add ebp, eax
cmp ebp, eax
mov dword [esp + edx*4 + 0x5e0], ebp
mov eax, 0
adc eax, 0
add edx, 0xffffffff
jne 0x43dde4
mov edx, dword [esp + ecx + 0x5e0]
test edx, edx
jne 0x43de3a
mov eax, dword [esp + 0x84]
jmp 0x43de21
add eax, 0xffffffff
mov ecx, eax
shl ecx, 2
mov edx, dword [esp + ecx + 0x5e0]
test edx, edx
je 0x43de1e
mov dword [esp + 0x84], eax
mov edi, eax
mov eax, dword [esp + 0x5e4]
test eax, eax
jle 0x43df37
add dword [esp + 0x154], 0xffffffff
add eax, eax
cmp edi, 2
mov dword [esp + 0x5e4], eax
jb 0x43e091
lea eax, [edi - 2]
cmp eax, 5
jb 0x43e087
mov dword [esp + 0x428], esi
mov edx, 2
lea eax, [edi - 5]
mov ebp, dword [esp + edx*4 + 0x5e0]
mov esi, dword [esp + edx*4 + 0x5e4]
shr ebp, 0x1f
shr esi, 0x1f
or dword [esp + edx*4 + 0x5dc], ebp
mov ebp, dword [esp + edx*4 + 0x5e0]
add ebp, ebp
or ebp, esi
mov esi, dword [esp + edx*4 + 0x5e4]
mov dword [esp + edx*4 + 0x5e0], ebp
mov ebp, dword [esp + edx*4 + 0x5e8]
add esi, esi
shr ebp, 0x1f
or esi, ebp
mov ebp, dword [esp + edx*4 + 0x5ec]
mov dword [esp + edx*4 + 0x5e4], esi
mov esi, dword [esp + edx*4 + 0x5e8]
add esi, esi
shr ebp, 0x1f
or esi, ebp
mov ebp, dword [esp + edx*4 + 0x5ec]
add ebp, ebp
mov dword [esp + edx*4 + 0x5e8], esi
mov dword [esp + edx*4 + 0x5ec], ebp
add edx, 4
cmp edx, eax
jbe 0x43de7e
mov esi, dword [esp + 0x428]
mov eax, dword [esp + edx*4 + 0x5e0]
mov ebp, dword [esp + edx*4 + 0x5e0]
shr eax, 0x1f
or dword [esp + edx*4 + 0x5dc], eax
add ebp, ebp
mov dword [esp + edx*4 + 0x5e0], ebp
add edx, 1
cmp edx, edi
jbe 0x43df01
mov eax, dword [esp + ecx + 0x5e0]
test eax, eax
jne 0x43df37
add edi, 0xffffffff
mov ecx, dword [esp + 0xc8]
mov ebp, ecx
shr ebp, 5
and ecx, 0x1f
xor eax, eax
cmp eax, ecx
adc eax, 0
lea edx, [ebp + eax]
mov dword [esp + 0x340], eax
cmp edi, edx
jb 0x43e07b
mov edi, edx
test eax, eax
je 0x43df7b
neg ecx
add ecx, 0x1f
mov eax, 1
shl eax, cl
mov dword [esp + 0x504], eax
jmp 0x43df8c
mov eax, dword [esp + edx*4 + 0x5e4]
shr eax, 0x1f
mov dword [esp + 0x504], eax
test edx, edx
je 0x43e05a
mov eax, dword [esp + edx*4 + 0x5e0]
mov ecx, dword [esp + 0x504]
add eax, ecx
cmp eax, ecx
jae 0x43e015
mov dword [esp + edx*4 + 0x5e0], eax
mov eax, dword [esp + 0x340]
lea edi, [ebp + eax - 1]
mov dword [esp + 0x5e0], 0
mov eax, dword [esp + edi*4 + 0x5e0]
cmp eax, 0xffffffff
jne 0x43dfe0
mov eax, dword [esp + edi*4 + 0x5dc]
add edi, 0xffffffff
cmp eax, 0xffffffff
je 0x43dfd1
test edi, edi
je 0x43dff3
add eax, 1
mov dword [esp + edi*4 + 0x5e0], eax
jmp 0x43c3db
add dword [esp + 0x154], 1
mov edi, 1
mov eax, 0x80000000
mov dword [esp + 0x5e4], 0x80000000
jmp 0x43c3db
mov ecx, dword [esp + 0x340]
test ecx, ecx
je 0x43e038
mov ecx, dword [esp + 0x504]
lea ebp, [ecx + ecx - 1]
not ebp
and eax, ebp
mov dword [esp + edx*4 + 0x5e0], eax
jmp 0x43e03f
mov dword [esp + edx*4 + 0x5e0], eax
test eax, eax
jne 0x43c3db
mov eax, dword [esp + edi*4 + 0x5dc]
add edi, 0xffffffff
test eax, eax
je 0x43e047
jmp 0x43c3db
mov edi, eax
add dword [esp + 0x154], edi
mov eax, edi
shl eax, 0x1f
mov dword [esp + 0x5e4], eax
mov eax, dword [esp + edi*4 + 0x5e0]
jmp 0x43c3db
mov eax, dword [esp + edi*4 + 0x5e0]
jmp 0x43c3db
mov edx, 2
jmp 0x43df01
mov eax, dword [esp + ecx + 0x5e0]
jmp 0x43df30
add edi, 0xffffffff
jne 0x43dcd4
mov ebx, dword [esp + 0x42c]
mov esi, dword [esp + 0x428]
jmp 0x43dda3
mov edx, 2
jmp 0x43d97f
add edi, 0xffffffff
jne 0x43cbd5
mov ebp, dword [esp + 0x430]
mov ebx, dword [esp + 0x42c]
mov esi, dword [esp + 0x428]
mov dword [esp + 0x424], edx
jmp 0x43d836
mov eax, dword [esp + 0x84]
shl eax, 2
jmp 0x43cb32
mov eax, dword [esp + 0x5e8]
mov edi, 2
jmp 0x43ca22
mov edi, 0x1b
mov eax, 2
mov dword [esp + 0x424], eax
jmp 0x43c9dc
movsx eax, word [0x495b04]
mov edx, dword [0x49598c]
mov ecx, dword [0x495988]
mov edi, dword [0x495984]
mov dword [esp + 0x154], eax
mov eax, dword [0x495980]
mov dword [esp + 0x5e4], edx
mov dword [esp + 0x5e8], ecx
mov dword [esp + 0x5ec], edi
mov dword [esp + 0x5f0], eax
mov edi, 4
jmp 0x43db07
mov dword [esp + 0xcc], ecx
mov eax, 0
jle 0x43b298
xor ebx, ebx
add ebp, ebp
add ebx, 1
test ebp, ebp
jg 0x43e182
test ebx, ebx
je 0x43b298
mov edi, dword [esp + 0xcc]
sub edi, ebx
mov dword [esp + 0xcc], edi
mov ecx, ebx
neg ecx
mov edi, esi
mov dword [esp + 0x430], ecx
shr edi, cl
mov ecx, ebx
shl esi, cl
mov ecx, dword [esp + 0x430]
or ebp, edi
mov edi, edx
shr edi, cl
mov ecx, ebx
shl edx, cl
or esi, edi
mov ecx, dword [esp + 0x430]
mov edi, eax
shr edi, cl
mov ecx, ebx
shl eax, cl
or edx, edi
jmp 0x43b298
mov edx, 0x4d104d43
jmp 0x43ab68
mov eax, ecx
lea eax, [eax + 1]
jmp 0x43a38b