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

Disassembly:
push edi
push esi
push ebp
push ebx
sub esp, 0x678
mov eax, dword [esp + 0x68c]
mov ebp, dword [esp + 0x690]
mov esi, dword [esp + 0x694]
mov ebx, dword [esp + 0x698]
mov edx, dword [esp + 0x69c]
mov ecx, dword [esp + 0x6a0]
mov dword [esp + 0x5e4], eax
mov eax, dword [esp + 0x6a4]
mov dword [esp + 0x5e0], ebx
mov dword [esp + 0x5ec], edx
mov dword [esp + 0x5e8], ecx
mov dword [esp + 0x5dc], eax
xor eax, eax
mov dword [esp + 0x5bc], eax
mov dword [esp + 0x5b8], eax
mov dword [esp + 0x5b4], eax
mov dword [esp + 0x5b0], eax
test ebx, 0x8010000
je 0x43e2a5
mov eax, ebx
test eax, 0x10000
je 0x43e297
lea eax, [esp + 0x6af]
and eax, 0xfffffffc
movsx edx, byte [eax]
mov dword [esp + 0x650], edx
jmp 0x43e2b1
mov eax, 0x2c
mov dword [esp + 0x650], eax
jmp 0x43e2b1
mov eax, 0x2e
mov dword [esp + 0x650], eax
test esi, esi
jle 0x442169
mov ecx, ebx
xor ebx, ebx
mov dword [esp + 0x4b0], ebx
mov edx, ecx
mov dword [esp + 0x4ac], ebx
mov eax, ecx
mov dword [esp + 0x4a8], ebx
mov dword [esp + 0x4a4], ebx
mov dword [esp + 0x4a0], ebx
and edx, 0x80
and eax, 0x80000000
mov dword [esp + 0x49c], ebx
mov dword [esp + 0x498], ebx
mov ebx, edx
shl ebx, 4
shl edx, 0x18
mov dword [esp + 0x5d0], eax
and edx, eax
shr edx, 0x13
or ebx, edx
test cl, 0x20
je 0x43e333
movsx eax, byte [ebp]
cmp eax, 9
jl 0x43e333
cmp eax, 0xd
jle 0x43e32b
cmp eax, 0x20
jne 0x43e333
add ebp, 1
add esi, 0xffffffff
jne 0x43e318
mov dword [esp + 0x5d4], ebp
test esi, esi
je 0x43e7f3
movsx eax, byte [ebp]
cmp eax, 0x2d
jne 0x43e350
or ebx, 8
jmp 0x43e355
cmp eax, 0x2b
jne 0x43e364
or ebx, 2
add ebp, 1
add esi, 0xffffffff
je 0x43e7f3
mov dword [esp + 0x664], esi
xor edi, edi
mov dword [esp + 0x670], edi
xor eax, eax
mov dword [esp + 0x674], eax
mov dword [esp + 0x660], eax
mov dword [esp + 0x65c], eax
mov edx, 9
mov ecx, 5
mov dword [esp + 0x668], ecx
mov dword [esp + 0x654], edx
mov ecx, 1
mov dword [esp + 0x66c], ecx
mov dword [esp + 0x658], eax
movsx esi, byte [ebp]
lea edx, [esi - 9]
cmp edx, 0x6f
ja case.0x43e3cd.10
mov edx, dword [edx*4 + 0x494aa0]
jmp edx
mov edx, dword [esp + 0x5e0]
test dl, 0x10
jne 0x43e7d5
jmp case.0x43e3cd.10
mov edx, dword [esp + 0x5e0]
test edx, 0x100
je case.0x43e3cd.10
test ebx, 0x200
jne case.0x43e3cd.10
mov edx, dword [esp + 0x670]
test edx, edx
jne case.0x43e3cd.10
mov edx, dword [esp + 0x658]
cmp edx, 1
jne case.0x43e3cd.10
xor ebx, 4
or ebx, 0x200
mov edx, 8
mov dword [esp + 0x654], edx
mov ecx, 4
mov dword [esp + 0x668], ecx
mov esi, 3
mov dword [esp + 0x66c], esi
jmp 0x43e7d5
mov ecx, dword [esp + 0x5e0]
mov edx, ebx
and edx, 0x200
and ecx, 0x1000
or edx, ecx
jne case.0x43e3cd.10
jmp 0x440cab
test ebx, 0x200
je case.0x43e3cd.10
jmp 0x440dd9
test ebx, 0x800
je case.0x43e3cd.10
mov edx, dword [esp + 0x658]
or edx, dword [esp + 0x670]
mov ecx, ebx
and ecx, 0x201
or edx, ecx
jne case.0x43e3cd.10
mov ecx, dword [esp + 0x664]
mov dword [esp + 0xb8], ebp
mov edx, 0x4b6f70
test ecx, ecx
je 0x441045
mov dword [esp + 0x484], edi
mov dword [esp + 0x150], esi
mov esi, ecx
movsx ecx, byte [edx]
test ecx, ecx
je 0x440dec
movsx ecx, byte [ebp]
mov edi, edx
movsx edi, byte [edi]
add edx, 1
or ecx, 0x20
or edi, 0x20
cmp ecx, edi
jne 0x440f9f
add ebp, 1
add esi, 0xffffffff
jne 0x43e4dc
mov edi, dword [esp + 0x484]
movsx ecx, byte [edx]
mov dword [esp + 0x664], esi
mov esi, dword [esp + 0x150]
mov dword [esp + 0xbc], ecx
test ecx, ecx
je 0x440de5
mov ebp, dword [esp + 0xb8]
sub edx, ebp
mov dword [esp + 0x664], edx
jmp case.0x43e3cd.10
test ebx, 0x800
je case.0x43e3cd.10
mov edx, dword [esp + 0x658]
or edx, dword [esp + 0x670]
mov ecx, ebx
and ecx, 0x201
or edx, ecx
jne case.0x43e3cd.10
mov ecx, dword [esp + 0x664]
mov dword [esp + 0xbc], ebp
mov edx, 0x4b6f80
test ecx, ecx
je 0x440fed
mov dword [esp + 0x484], edi
mov edi, ecx
mov dword [esp + 0x150], esi
movsx esi, byte [edx]
test esi, esi
je 0x440fd3
movsx ecx, byte [ebp]
or ecx, 0x20
or esi, 0x20
cmp ecx, esi
jne 0x440fb9
add edx, 1
add ebp, 1
add edi, 0xffffffff
jne 0x43e59a
mov esi, dword [esp + 0x150]
movsx ecx, byte [edx]
mov dword [esp + 0x664], edi
mov edi, dword [esp + 0x484]
test ecx, ecx
jne 0x43e67e
mov dword [esp + 0x5d4], ebp
test bl, 8
je 0x43e5fc
mov edx, 0x4961b0
mov dword [esp + 0xbc], edx
jmp 0x43e608
mov edx, 0x4961a0
mov dword [esp + 0xbc], edx
mov ecx, dword [edx]
mov dword [esp + 0x5b0], ecx
mov ecx, dword [edx + 4]
and ebx, 0xfffffff7
mov dword [esp + 0x5b4], ecx
mov ecx, dword [edx + 8]
mov edx, dword [edx + 0xc]
mov dword [esp + 0x5b8], ecx
mov dword [esp + 0x5bc], edx
mov edx, dword [esp + 0x5e0]
test edx, 0x40000000
je 0x43e647
or ebx, 0xc000000
test dl, 2
je case.0x43e3cd.10
mov edx, dword [esp + 0x664]
test edx, edx
je case.0x43e3cd.10
mov ecx, edx
movsx edx, byte [ebp]
cmp edx, 0x20
jne 0x43e672
add ebp, 1
add ecx, 0xffffffff
jne 0x43e661
mov dword [esp + 0x664], ecx
jmp case.0x43e3cd.10
movsx ecx, byte [edx - 1]
cmp ecx, 0x66
je 0x43e5e2
mov ebp, dword [esp + 0xbc]
sub edx, ebp
mov dword [esp + 0x664], edx
jmp case.0x43e3cd.10
test ebx, 0x200
jne 0x43e6d9
jmp 0x440ff5
test ebx, 0x200
jne 0x43e6d9
mov edx, dword [esp + 0x5e0]
test edx, 0x1000
jne case.0x43e3cd.10
jmp 0x440ff5
test ebx, 0x200
je case.0x43e3cd.10
or esi, 0x20
add esi, 0xffffffa9
jmp 0x43e6e4
add esi, 0xffffffd0
add dword [esp + 0x670], 1
or ebx, 4
mov ecx, ebx
and ecx, 0x201
xor edx, edx
cmp ecx, 0x200
sete dl
sub edi, edx
mov edx, dword [esp + 0x654]
add edi, 1
cmp eax, edx
je 0x441001
mov ecx, dword [esp + 0x66c]
mov edx, dword [esp + 0x674]
add eax, 1
mov dword [esp + 0x5d8], eax
mov eax, edx
shl eax, cl
lea esi, [esi + edx*8]
add esi, eax
mov eax, dword [esp + 0x5d8]
mov dword [esp + 0x674], esi
jmp 0x43e7d5
mov edx, dword [esp + 0x670]
test edx, edx
jne case.0x43e3cd.49
mov edx, ebx
and edx, 1
add edi, edx
xor edx, 1
or ebx, 4
add dword [esp + 0x658], edx
jmp 0x43e7d5
mov edx, dword [esp + 0x5e0]
test dl, 8
jne 0x43e7d5
jmp case.0x43e3cd.10
mov edx, dword [esp + 0x5e0]
test dl, 4
jne 0x43e7d5
jmp case.0x43e3cd.10
mov edx, dword [esp + 0x5e0]
test edx, 0x800
jne case.0x43e3cd.10
jmp 0x441054
mov edx, dword [esp + 0x5e0]
test dl, 2
jne 0x43e7d5
jmp 0x441066
mov edx, dword [esp + 0x5e0]
test dl, 1
jne 0x43e7d5
mov edx, dword [esp + 0x650]
cmp esi, edx
jne 0x441095
test bl, 1
jne 0x441079
or ebx, 1
xor edi, edi
mov edx, dword [esp + 0x664]
add ebp, 1
add edx, 0xffffffff
mov dword [esp + 0x664], edx
jne 0x43e3b6
mov esi, edx
jmp 0x43e813
xor edi, edi
mov dword [esp + 0x670], edi
xor eax, eax
mov dword [esp + 0x674], eax
mov dword [esp + 0x660], eax
mov dword [esp + 0x65c], eax
mov dword [esp + 0x658], ebp
xor edx, edx
mov dword [esp + 0x668], edx
test bl, 4
jne 0x43e836
mov ecx, dword [esp + 0x5d4]
mov dword [esp + 0x658], ecx
test bl, 0x40
je 0x43e842
mov dword [esp + 0x658], ebp
mov ecx, dword [esp + 0x5e0]
test ecx, 0x8000
je 0x43e879
mov ecx, dword [esp + 0x5d0]
test ecx, ecx
je 0x43e86a
movsx ecx, byte [ebp]
test ecx, ecx
je 0x43e879
test esi, esi
jne 0x43e86e
jmp 0x43e879
test esi, esi
je 0x43e879
or ebx, 0x3000000
jmp 0x440a3c
mov ecx, dword [esp + 0x670]
test ecx, ecx
jne 0x43e8bb
mov eax, ebx
and eax, 0xc
cmp eax, 0xc
jne 0x43e899
xor dword [esp + 0x5bc], 0x80000000
mov eax, dword [esp + 0x5e0]
and eax, 0x28000
cmp eax, 0x28000
jne 0x440a3c
or ebx, 0x3000000
jmp 0x440a3c
test bl, 0x10
je 0x43e914
cmp edx, 6
jbe 0x43e8d6
mov eax, ebx
and eax, 8
mov dword [esp + 0x5e8], eax
jmp 0x440820
test ebx, 0x80
je 0x43e8ee
mov edx, dword [esp + 0x668]
neg edx
mov dword [esp + 0x668], edx
mov edx, dword [esp + 0x5e0]
test edx, 0x400
je 0x43e924
mov edx, dword [esp + 0x668]
sub edx, dword [esp + 0x5e8]
mov dword [esp + 0x668], edx
jmp 0x43e924
mov edx, dword [esp + 0x5e8]
neg edx
mov dword [esp + 0x668], edx
test ebx, 0x200
je 0x43eb63
mov edx, dword [esp + 0x668]
neg edi
add edi, dword [esp + 0x670]
lea ecx, [edx + edi*4]
mov dword [esp + 0x654], ecx
test bl, 1
jne 0x43e962
mov edx, dword [esp + 0x5ec]
shl edx, 2
sub ecx, edx
mov dword [esp + 0x654], ecx
mov edx, dword [esp + 0x670]
neg eax
lea ecx, [eax*4 + 0x20]
mov eax, dword [esp + 0x674]
shl eax, cl
mov dword [esp + 0x674], eax
cmp edx, 8
ja 0x43e9c2
test eax, eax
jle 0x44109e
mov edx, eax
xor eax, eax
add edx, edx
add eax, 1
test edx, edx
jg 0x43e993
mov dword [esp + 0x674], edx
mov edx, dword [esp + 0x674]
mov dword [esp + 0x49c], edx
mov esi, 1
mov dword [esp + 0x660], esi
jmp 0x43eb4e
mov eax, dword [esp + 0x660]
mov edx, dword [esp + 0x674]
add eax, 1
mov dword [esp + 0x660], eax
test edx, edx
mov dword [esp + eax*4 + 0x78], edx
jne 0x43e9f4
add eax, 0xffffffff
mov edx, dword [esp + eax*4 + 0x78]
test edx, edx
je 0x43e9e2
mov dword [esp + 0x660], eax
mov edx, dword [esp + 0x7c]
test edx, edx
jle 0x4410b6
xor eax, eax
add edx, edx
add eax, 1
test edx, edx
jg 0x43ea02
mov dword [esp + 0x7c], edx
test eax, eax
je 0x43eb33
mov dword [esp + 0x49c], edx
mov edx, dword [esp + 0x660]
cmp edx, 1
jbe 0x43eb4e
lea esi, [edx - 1]
cmp esi, 5
jb 0x4410a5
mov dword [esp + 0x598], ebx
mov dword [esp + 0x59c], ebp
mov esi, 1
lea edi, [edx - 5]
mov dword [esp + 0x5e8], edi
mov edx, eax
neg edx
add edx, 0x20
mov ebp, dword [esp + esi*4 + 0x7c]
mov edi, dword [esp + esi*4 + 0x80]
mov ecx, edx
mov ebx, ebp
shr ebx, cl
or dword [esp + esi*4 + 0x498], ebx
mov ecx, eax
shl ebp, cl
mov ecx, edx
mov ebx, edi
shr ebx, cl
mov ecx, eax
shl edi, cl
or ebp, ebx
mov ebx, dword [esp + esi*4 + 0x84]
mov ecx, edx
mov dword [esp + esi*4 + 0x49c], ebp
mov ebp, ebx
shr ebp, cl
mov ecx, eax
shl ebx, cl
or edi, ebp
mov ecx, edx
mov dword [esp + esi*4 + 0x4a0], edi
mov edi, dword [esp + esi*4 + 0x88]
mov ebp, edi
shr ebp, cl
mov ecx, eax
shl edi, cl
or ebx, ebp
mov dword [esp + esi*4 + 0x4a4], ebx
mov ebx, dword [esp + 0x5e8]
mov dword [esp + esi*4 + 0x4a8], edi
add esi, 4
cmp esi, ebx
jbe 0x43ea5e
mov ebx, dword [esp + 0x598]
mov ebp, dword [esp + 0x59c]
mov edi, dword [esp + 0x660]
mov dword [esp + 0x598], ebx
mov dword [esp + 0x59c], ebp
mov ebp, dword [esp + esi*4 + 0x7c]
mov ecx, edx
mov ebx, ebp
shr ebx, cl
mov ecx, eax
shl ebp, cl
or dword [esp + esi*4 + 0x498], ebx
mov dword [esp + esi*4 + 0x49c], ebp
add esi, 1
cmp esi, edi
jb 0x43eaf9
mov ebx, dword [esp + 0x598]
mov ebp, dword [esp + 0x59c]
mov dword [esp + 0x660], edi
jmp 0x43eb4e
mov edx, dword [esp + 0x660]
test edx, edx
je 0x43eb4e
mov esi, dword [esp + edx*4 + 0x78]
mov dword [esp + edx*4 + 0x498], esi
add edx, 0xffffffff
jne 0x43eb3e
mov edx, dword [esp + 0x654]
sub edx, eax
mov dword [esp + 0x654], edx
jmp 0x440377
test bl, 1
je 0x43eb7a
mov edx, dword [esp + 0x668]
sub edx, edi
mov dword [esp + 0x668], edx
jmp 0x43eb8f
mov edx, dword [esp + 0x668]
sub edx, dword [esp + 0x5ec]
mov dword [esp + 0x668], edx
mov ecx, edx
mov edx, dword [esp + 0x670]
lea edx, [edx + ecx]
cmp edx, 0xffffec9b
jge 0x43ebb4
mov eax, ebx
and eax, 8
mov dword [esp + 0x5e8], eax
jmp 0x440820
cmp edx, 0x1345
jle 0x43ebcd
mov eax, ebx
and eax, 8
mov dword [esp + 0x5e8], eax
jmp 0x440820
mov edx, dword [esp + 0x670]
lea ecx, [edx - 0x36]
test ecx, ecx
jle 0x43ebf4
mov edx, dword [esp + 0x668]
mov ecx, dword [esp + 0x670]
lea esi, [edx + ecx - 0x36]
mov dword [esp + 0x668], esi
mov edx, dword [esp + 0x670]
cmp edx, 9
ja 0x440b48
mov eax, dword [esp + 0x674]
test eax, eax
jle 0x441fe4
mov edx, eax
xor eax, eax
mov dword [esp + 0x654], eax
add edx, edx
add eax, 1
test edx, edx
jg 0x43ec1e
mov dword [esp + 0x654], eax
mov dword [esp + 0x674], edx
mov edx, dword [esp + 0x674]
mov dword [esp + 0x49c], edx
neg eax
add eax, 0x20
mov dword [esp + 0x654], eax
mov ecx, 1
mov dword [esp + 0x660], ecx
mov eax, dword [esp + 0x668]
test eax, eax
je 0x440377
mov eax, dword [esp + 0x660]
cmp eax, 4
jb 0x43ed62
mov eax, dword [esp + 0x4ac]
mov edx, dword [esp + 0x4a8]
shr eax, 0x1f
add edx, eax
mov dword [esp + 0x4a8], edx
cmp edx, eax
jae 0x43ed29
mov eax, dword [esp + 0x4a4]
mov dword [esp + 0x498], 0
cmp eax, 0xffffffff
je 0x43ecc1
mov eax, 3
mov dword [esp + 0x660], eax
jmp 0x43ece7
mov eax, 3
mov dword [esp + 0x660], eax
add eax, 0xffffffff
mov edx, dword [esp + eax*4 + 0x498]
cmp edx, 0xffffffff
je 0x43eccd
mov dword [esp + 0x660], eax
test eax, eax
je 0x43ecff
add dword [esp + eax*4 + 0x498], 1
lea edx, [esp + 0x49c]
mov dword [esp + 0xbc], edx
jmp 0x43ed70
add dword [esp + 0x654], 1
lea eax, [esp + 0x49c]
mov edx, 1
mov dword [esp + 0xbc], eax
mov dword [eax], 0x80000000
mov dword [esp + 0x660], edx
jmp 0x43ed70
test edx, edx
jne 0x4410bd
mov eax, 4
mov dword [esp + 0x660], eax
add eax, 0xffffffff
mov edx, dword [esp + eax*4 + 0x498]
test edx, edx
je 0x43ed3d
mov dword [esp + 0x660], eax
lea eax, [esp + 0x49c]
mov dword [esp + 0xbc], eax
jmp 0x43ed70
lea eax, [esp + 0x49c]
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0x668]
cmp eax, 0xfffffdea
jge 0x43f314
cmp eax, 0xfffff000
jle 0x43edc3
mov dword [esp + 0x598], ebx
mov dword [esp + 0x59c], ebp
xor ecx, ecx
mov esi, 3
mov dword [esp + 0x674], ecx
mov ebp, ecx
mov ecx, 0x1000
xor eax, eax
mov dword [esp + 0x664], eax
mov dword [esp + 0x670], eax
mov ebx, eax
jmp 0x43f2c8
mov dword [esp + 0x598], ebx
mov dword [esp + 0x59c], ebp
xor ecx, ecx
mov esi, 3
mov dword [esp + 0x674], ecx
mov ebp, ecx
mov ecx, 0x1000
xor eax, eax
mov dword [esp + 0x664], eax
mov dword [esp + 0x670], eax
mov ebx, eax
add dword [esp + 0x668], ecx
test ebp, ebp
je 0x43f282
movsx edx, word [esi*2 + 0x495ae0]
mov dword [esp + 0x664], edx
mov edi, esi
shl edi, 4
lea edx, [ebp + 4]
mov eax, dword [edi + 0x4957cc]
mov dword [esp + 0x228], eax
mov eax, dword [edi + 0x4957c8]
mov dword [esp + 0x22c], eax
mov eax, dword [edi + 0x4957c4]
mov dword [esp + 0x230], eax
mov eax, dword [edi + 0x4957c0]
mov dword [esp + 0x234], eax
mov dword [esp + 0x650], edx
mov edx, dword [esp + ebp*4 + 0x2e4]
mov dword [esp + 0x38], edx
mov dword [esp + 0x3c], eax
lea edi, [ebp + 3]
mov dword [esp + 0x5e8], edi
mov eax, dword [esp + 0x38]
mul dword [esp + 0x3c]
mov dword [esp + 0x44], eax
mov dword [esp + 0x40], edx
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x5e8]
mov dword [esp + eax*4 + 0x268], edx
mov edx, dword [esp + 0x40]
mov dword [esp + eax*4 + 0x264], edx
mov dword [esp + 0x66c], ecx
mov eax, 3
mov ecx, eax
mov edx, dword [esp + ebp*4 + 0x2e4]
mov dword [esp + edi*4 + 0x2a4], 0
mov dword [esp + 0x3a4], edx
mov edx, dword [esp + ecx*4 + 0x224]
mov dword [esp + 0x3a8], edx
mov eax, dword [esp + 0x3a4]
mul dword [esp + 0x3a8]
mov dword [esp + 0x3b0], eax
mov dword [esp + 0x3ac], edx
mov edx, dword [esp + edi*4 + 0x264]
add edx, dword [esp + 0x3b0]
cmp edx, dword [esp + 0x3b0]
mov dword [esp + edi*4 + 0x264], edx
mov edx, 0
adc edx, 0
add edi, 0xffffffff
add edx, dword [esp + 0x3ac]
mov dword [esp + edi*4 + 0x264], edx
add ecx, 0xffffffff
jne 0x43eead
mov ecx, dword [esp + 0x66c]
mov dword [esp + edi*4 + 0x2a4], 0
add edi, 0xffffffff
test edi, edi
jl 0x43efaf
cmp edi, 6
jl 0x43ef98
xor eax, eax
mov dword [esp + edi*4 + 0x2a4], eax
mov dword [esp + edi*4 + 0x264], eax
mov dword [esp + edi*4 + 0x2a0], eax
mov dword [esp + edi*4 + 0x260], eax
mov dword [esp + edi*4 + 0x29c], eax
mov dword [esp + edi*4 + 0x25c], eax
mov dword [esp + edi*4 + 0x298], eax
mov dword [esp + edi*4 + 0x258], eax
mov dword [esp + edi*4 + 0x294], eax
mov dword [esp + edi*4 + 0x254], eax
add edi, 0xfffffffb
cmp edi, 6
jge 0x43ef48
xor eax, eax
mov dword [esp + edi*4 + 0x2a4], eax
mov dword [esp + edi*4 + 0x264], eax
add edi, 0xffffffff
test edi, edi
jge 0x43ef98
add ebp, 0xffffffff
je 0x43f07d
mov dword [esp + 0xb8], esi
mov edi, ebp
mov dword [esp + 0x66c], ecx
shl edi, 2
mov esi, 0x10
lea ecx, [edi + 0x10]
mov eax, dword [esp + ebp*4 + 0x2e4]
mov edx, dword [esp + esi + 0x224]
mov dword [esp + 0x610], eax
mov dword [esp + 0x614], edx
mov eax, dword [esp + 0x610]
mul dword [esp + 0x614]
mov dword [esp + 0x61c], eax
mov dword [esp + 0x618], edx
mov eax, dword [esp + ecx + 0x264]
add eax, dword [esp + 0x61c]
cmp eax, dword [esp + 0x61c]
mov edx, dword [esp + ecx + 0x260]
mov dword [esp + ecx + 0x264], eax
mov eax, 0
adc eax, 0
add eax, dword [esp + 0x618]
add edx, eax
mov dword [esp + ecx + 0x260], edx
cmp edx, eax
mov eax, 0
adc eax, 0
add dword [esp + ecx + 0x29c], eax
add ecx, 0xfffffffc
add esi, 0xfffffffc
jne 0x43efd3
add edi, 0xfffffffc
add ebp, 0xffffffff
jne 0x43efcb
mov esi, dword [esp + 0xb8]
mov ecx, dword [esp + 0x66c]
add ebx, dword [esp + 0x664]
mov ebp, dword [esp + 0x650]
mov edx, dword [esp + ebp*4 + 0x264]
mov eax, dword [esp + 0x5e8]
mov dword [esp + ebp*4 + 0x2e4], edx
test eax, eax
je 0x43f0df
mov edx, ebp
xor eax, eax
lea edx, [edx - 1]
add eax, dword [esp + edx*4 + 0x2a4]
mov edi, dword [esp + edx*4 + 0x264]
add edi, eax
cmp edi, eax
mov dword [esp + edx*4 + 0x2e4], edi
mov eax, 0
adc eax, 0
add edx, 0xffffffff
jne 0x43f0ab
mov eax, dword [esp + 0x650]
mov edx, dword [esp + eax*4 + 0x2e4]
test edx, edx
jne 0x43f0f1
add ebp, 0xffffffff
mov eax, dword [esp + ebp*4 + 0x2e4]
test eax, eax
je 0x43f0e3
mov eax, dword [esp + 0x2e8]
test eax, eax
jle 0x43f1db
add eax, eax
mov dword [esp + 0x2e8], eax
add ebx, 0xffffffff
cmp ebp, 2
jb 0x43f1db
lea eax, [ebp - 2]
cmp eax, 5
jb 0x4410e6
mov dword [esp + 0x66c], ecx
mov edx, 2
lea eax, [ebp - 5]
mov ecx, dword [esp + edx*4 + 0x2e4]
mov edi, dword [esp + edx*4 + 0x2e8]
shr ecx, 0x1f
shr edi, 0x1f
or dword [esp + edx*4 + 0x2e0], ecx
mov ecx, dword [esp + edx*4 + 0x2e4]
add ecx, ecx
or ecx, edi
mov edi, dword [esp + edx*4 + 0x2e8]
mov dword [esp + edx*4 + 0x2e4], ecx
mov ecx, dword [esp + edx*4 + 0x2ec]
add edi, edi
shr ecx, 0x1f
or edi, ecx
mov ecx, dword [esp + edx*4 + 0x2f0]
mov dword [esp + edx*4 + 0x2e8], edi
mov edi, dword [esp + edx*4 + 0x2ec]
add edi, edi
shr ecx, 0x1f
or edi, ecx
mov ecx, dword [esp + edx*4 + 0x2f0]
add ecx, ecx
mov dword [esp + edx*4 + 0x2ec], edi
mov dword [esp + edx*4 + 0x2f0], ecx
add edx, 4
cmp edx, eax
jbe 0x43f130
mov ecx, dword [esp + 0x66c]
mov eax, dword [esp + edx*4 + 0x2e4]
mov edi, dword [esp + edx*4 + 0x2e4]
shr eax, 0x1f
or dword [esp + edx*4 + 0x2e0], eax
add edi, edi
mov dword [esp + edx*4 + 0x2e4], edi
add edx, 1
cmp edx, ebp
jbe 0x43f1b3
mov eax, dword [esp + ebp*4 + 0x2e4]
test eax, eax
jne 0x43f1e9
add ebp, 0xffffffff
cmp ebp, 4
jb 0x43f2c8
mov eax, dword [esp + 0x2f8]
mov edx, dword [esp + 0x2f4]
shr eax, 0x1f
add edx, eax
mov dword [esp + 0x2f4], edx
cmp edx, eax
jae 0x43f265
mov eax, dword [esp + 0x2f0]
mov dword [esp + 0x2e4], 0
cmp eax, 0xffffffff
je 0x43f22e
mov ebp, 3
jmp 0x43f246
mov ebp, 3
add ebp, 0xffffffff
mov eax, dword [esp + ebp*4 + 0x2e4]
cmp eax, 0xffffffff
je 0x43f233
test ebp, ebp
je 0x43f250
add dword [esp + ebp*4 + 0x2e4], 1
jmp 0x43f2c8
mov dword [esp + 0x2e8], 0x80000000
add ebx, 1
mov ebp, 1
jmp 0x43f2c8
test edx, edx
jne 0x4410dc
mov ebp, 4
add ebp, 0xffffffff
mov eax, dword [esp + ebp*4 + 0x2e4]
test eax, eax
je 0x43f272
jmp 0x43f2c8
movsx ebx, word [esi*2 + 0x495ae0]
mov edi, esi
shl edi, 4
mov eax, dword [edi + 0x4957cc]
mov edx, dword [edi + 0x4957c8]
mov ebp, dword [edi + 0x4957c4]
mov dword [esp + 0x2e8], eax
mov eax, dword [edi + 0x4957c0]
mov dword [esp + 0x2ec], edx
mov dword [esp + 0x2f0], ebp
mov dword [esp + 0x2f4], eax
mov ebp, 4
mov edx, dword [esp + 0x668]
sar ecx, 1
add esi, 0xffffffff
test esi, esi
jl 0x43f2ec
mov eax, ecx
neg eax
cmp edx, eax
jg 0x43f2cf
mov dword [esp + 0x668], edx
jmp 0x43edf8
mov dword [esp + 0x670], ebx
mov ebx, dword [esp + 0x598]
mov dword [esp + 0x674], ebp
mov ebp, dword [esp + 0x59c]
mov dword [esp + 0x668], edx
jmp 0x43f8ca
cmp eax, 0x216
jle 0x43f8b3
cmp eax, 0x1000
jge 0x43f360
mov dword [esp + 0x598], ebx
mov dword [esp + 0x59c], ebp
xor ecx, ecx
mov esi, 3
mov dword [esp + 0x674], ecx
mov ebp, ecx
mov ecx, 0x1000
xor eax, eax
mov dword [esp + 0x664], eax
mov dword [esp + 0x670], eax
mov ebx, eax
jmp 0x43f86e
mov dword [esp + 0x598], ebx
mov dword [esp + 0x59c], ebp
xor ecx, ecx
mov esi, 3
mov dword [esp + 0x674], ecx
mov ebp, ecx
mov ecx, 0x1000
xor eax, eax
mov dword [esp + 0x664], eax
mov dword [esp + 0x670], eax
mov ebx, eax
mov eax, dword [esp + 0x668]
sub eax, ecx
mov dword [esp + 0x668], eax
test ebp, ebp
je 0x43f828
movsx edx, word [esi*2 + 0x495afc]
mov dword [esp + 0x664], edx
mov edi, esi
shl edi, 4
lea edx, [ebp + 4]
mov eax, dword [edi + 0x49594c]
mov dword [esp + 0x228], eax
mov eax, dword [edi + 0x495948]
mov dword [esp + 0x22c], eax
mov eax, dword [edi + 0x495944]
mov dword [esp + 0x230], eax
mov eax, dword [edi + 0x495940]
mov dword [esp + 0x234], eax
mov dword [esp + 0x650], edx
mov edx, dword [esp + ebp*4 + 0x2e4]
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], eax
lea edi, [ebp + 3]
mov dword [esp + 0x66c], edi
mov eax, dword [esp + 0x18]
mul dword [esp + 0x1c]
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x66c]
mov dword [esp + eax*4 + 0xc4], edx
mov edx, dword [esp + 0x20]
mov dword [esp + eax*4 + 0xc0], edx
mov dword [esp + 0xb8], ecx
mov eax, 3
mov ecx, eax
mov edx, dword [esp + ebp*4 + 0x2e4]
mov dword [esp + edi*4 + 0x100], 0
mov dword [esp + 0x140], edx
mov edx, dword [esp + ecx*4 + 0x224]
mov dword [esp + 0x144], edx
mov eax, dword [esp + 0x140]
mul dword [esp + 0x144]
mov dword [esp + 0x14c], eax
mov dword [esp + 0x148], edx
mov edx, dword [esp + edi*4 + 0xc0]
add edx, dword [esp + 0x14c]
cmp edx, dword [esp + 0x14c]
mov dword [esp + edi*4 + 0xc0], edx
mov edx, 0
adc edx, 0
add edi, 0xffffffff
add edx, dword [esp + 0x148]
mov dword [esp + edi*4 + 0xc0], edx
add ecx, 0xffffffff
jne 0x43f453
mov ecx, dword [esp + 0xb8]
mov dword [esp + edi*4 + 0x100], 0
add edi, 0xffffffff
test edi, edi
jl 0x43f555
cmp edi, 6
jl 0x43f53e
xor eax, eax
mov dword [esp + edi*4 + 0x100], eax
mov dword [esp + edi*4 + 0xc0], eax
mov dword [esp + edi*4 + 0xfc], eax
mov dword [esp + edi*4 + 0xbc], eax
mov dword [esp + edi*4 + 0xf8], eax
mov dword [esp + edi*4 + 0xb8], eax
mov dword [esp + edi*4 + 0xf4], eax
mov dword [esp + edi*4 + 0xb4], eax
mov dword [esp + edi*4 + 0xf0], eax
mov dword [esp + edi*4 + 0xb0], eax
add edi, 0xfffffffb
cmp edi, 6
jge 0x43f4ee
xor eax, eax
mov dword [esp + edi*4 + 0x100], eax
mov dword [esp + edi*4 + 0xc0], eax
add edi, 0xffffffff
test edi, edi
jge 0x43f53e
add ebp, 0xffffffff
je 0x43f623
mov dword [esp + 0x5e8], esi
mov edi, ebp
mov dword [esp + 0xb8], ecx
shl edi, 2
mov esi, 0x10
lea ecx, [edi + 0x10]
mov eax, dword [esp + ebp*4 + 0x2e4]
mov edx, dword [esp + esi + 0x224]
mov dword [esp + 0x5c0], eax
mov dword [esp + 0x5c4], edx
mov eax, dword [esp + 0x5c0]
mul dword [esp + 0x5c4]
mov dword [esp + 0x5cc], eax
mov dword [esp + 0x5c8], edx
mov eax, dword [esp + ecx + 0xc0]
add eax, dword [esp + 0x5cc]
cmp eax, dword [esp + 0x5cc]
mov edx, dword [esp + ecx + 0xbc]
mov dword [esp + ecx + 0xc0], eax
mov eax, 0
adc eax, 0
add eax, dword [esp + 0x5c8]
add edx, eax
mov dword [esp + ecx + 0xbc], edx
cmp edx, eax
mov eax, 0
adc eax, 0
add dword [esp + ecx + 0xf8], eax
add ecx, 0xfffffffc
add esi, 0xfffffffc
jne 0x43f579
add edi, 0xfffffffc
add ebp, 0xffffffff
jne 0x43f571
mov esi, dword [esp + 0x5e8]
mov ecx, dword [esp + 0xb8]
add ebx, dword [esp + 0x664]
mov ebp, dword [esp + 0x650]
mov edx, dword [esp + ebp*4 + 0xc0]
mov eax, dword [esp + 0x66c]
mov dword [esp + ebp*4 + 0x2e4], edx
test eax, eax
je 0x43f685
mov edx, ebp
xor eax, eax
lea edx, [edx - 1]
add eax, dword [esp + edx*4 + 0x100]
mov edi, dword [esp + edx*4 + 0xc0]
add edi, eax
cmp edi, eax
mov dword [esp + edx*4 + 0x2e4], edi
mov eax, 0
adc eax, 0
add edx, 0xffffffff
jne 0x43f651
mov eax, dword [esp + 0x650]
mov edx, dword [esp + eax*4 + 0x2e4]
test edx, edx
jne 0x43f697
add ebp, 0xffffffff
mov eax, dword [esp + ebp*4 + 0x2e4]
test eax, eax
je 0x43f689
mov eax, dword [esp + 0x2e8]
test eax, eax
jle 0x43f781
add eax, eax
mov dword [esp + 0x2e8], eax
add ebx, 0xffffffff
cmp ebp, 2
jb 0x43f781
lea eax, [ebp - 2]
cmp eax, 5
jb 0x4410fa
mov dword [esp + 0xb8], ecx
mov edx, 2
lea eax, [ebp - 5]
mov ecx, dword [esp + edx*4 + 0x2e4]
mov edi, dword [esp + edx*4 + 0x2e8]
shr ecx, 0x1f
shr edi, 0x1f
or dword [esp + edx*4 + 0x2e0], ecx
mov ecx, dword [esp + edx*4 + 0x2e4]
add ecx, ecx
or ecx, edi
mov edi, dword [esp + edx*4 + 0x2e8]
mov dword [esp + edx*4 + 0x2e4], ecx
mov ecx, dword [esp + edx*4 + 0x2ec]
add edi, edi
shr ecx, 0x1f
or edi, ecx
mov ecx, dword [esp + edx*4 + 0x2f0]
mov dword [esp + edx*4 + 0x2e8], edi
mov edi, dword [esp + edx*4 + 0x2ec]
add edi, edi
shr ecx, 0x1f
or edi, ecx
mov ecx, dword [esp + edx*4 + 0x2f0]
add ecx, ecx
mov dword [esp + edx*4 + 0x2ec], edi
mov dword [esp + edx*4 + 0x2f0], ecx
add edx, 4
cmp edx, eax
jbe 0x43f6d6
mov ecx, dword [esp + 0xb8]
mov eax, dword [esp + edx*4 + 0x2e4]
mov edi, dword [esp + edx*4 + 0x2e4]
shr eax, 0x1f
or dword [esp + edx*4 + 0x2e0], eax
add edi, edi
mov dword [esp + edx*4 + 0x2e4], edi
add edx, 1
cmp edx, ebp
jbe 0x43f759
mov eax, dword [esp + ebp*4 + 0x2e4]
test eax, eax
jne 0x43f78f
add ebp, 0xffffffff
cmp ebp, 4
jb 0x43f86e
mov eax, dword [esp + 0x2f8]
mov edx, dword [esp + 0x2f4]
shr eax, 0x1f
add edx, eax
mov dword [esp + 0x2f4], edx
cmp edx, eax
jae 0x43f80b
mov eax, dword [esp + 0x2f0]
mov dword [esp + 0x2e4], 0
cmp eax, 0xffffffff
je 0x43f7d4
mov ebp, 3
jmp 0x43f7ec
mov ebp, 3
add ebp, 0xffffffff
mov eax, dword [esp + ebp*4 + 0x2e4]
cmp eax, 0xffffffff
je 0x43f7d9
test ebp, ebp
je 0x43f7f6
add dword [esp + ebp*4 + 0x2e4], 1
jmp 0x43f86e
mov dword [esp + 0x2e8], 0x80000000
add ebx, 1
mov ebp, 1
jmp 0x43f86e
test edx, edx
jne 0x4410f0
mov ebp, 4
add ebp, 0xffffffff
mov eax, dword [esp + ebp*4 + 0x2e4]
test eax, eax
je 0x43f818
jmp 0x43f86e
movsx ebx, word [esi*2 + 0x495afc]
mov edi, esi
shl edi, 4
mov eax, dword [edi + 0x49594c]
mov edx, dword [edi + 0x495948]
mov ebp, dword [edi + 0x495944]
mov dword [esp + 0x2e8], eax
mov eax, dword [edi + 0x495940]
mov dword [esp + 0x2ec], edx
mov dword [esp + 0x2f0], ebp
mov dword [esp + 0x2f4], eax
mov ebp, 4
mov eax, dword [esp + 0x668]
sar ecx, 1
add esi, 0xffffffff
test esi, esi
jl 0x43f88e
cmp eax, ecx
jl 0x43f875
mov dword [esp + 0x668], eax
jmp 0x43f395
mov dword [esp + 0x670], ebx
mov ebx, dword [esp + 0x598]
mov dword [esp + 0x674], ebp
mov ebp, dword [esp + 0x59c]
mov dword [esp + 0x668], eax
jmp 0x43f8ca
xor eax, eax
mov dword [esp + 0x674], eax
mov dword [esp + 0x664], eax
mov dword [esp + 0x670], eax
mov eax, dword [esp + 0x668]
cmp eax, 0xffffffe5
jl 0x43ff57
test eax, eax
jge 0x43fea6
movsx edx, word [eax*2 + 0x495ade]
mov dword [esp + 0xb8], edx
lea esi, [esp + 0x55c]
mov dword [esp + 0x66c], esi
shl eax, 4
mov ecx, dword [eax + 0x4957bc]
mov edi, dword [eax + 0x4957b8]
mov edx, dword [eax + 0x4957b4]
mov eax, dword [eax + 0x4957b0]
mov dword [esp + 0x560], edi
mov dword [esi], ecx
mov dword [esp + 0x564], edx
test eax, eax
mov dword [esp + 0x568], eax
jne 0x4415f3
mov eax, 4
mov dword [esp + 0x668], eax
mov edx, eax
mov eax, dword [esp + edx*4 + 0x554]
add edx, 0xffffffff
test eax, eax
je 0x43f947
mov dword [esp + 0x668], edx
mov edx, dword [esp + 0x674]
test edx, edx
je 0x43fc06
mov edi, edx
mov ecx, dword [esp + 0x668]
mov dword [esp + 0x48], eax
mov eax, dword [esp + edi*4 + 0x2e4]
mov dword [esp + 0x4c], eax
lea edx, [edi + ecx]
mov dword [esp + 0x5e8], edx
lea esi, [edi + ecx - 1]
mov dword [esp + 0x484], esi
mov eax, dword [esp + 0x48]
mul dword [esp + 0x4c]
mov dword [esp + 0x54], eax
mov dword [esp + 0x50], edx
mov eax, dword [esp + 0x484]
mov edx, dword [esp + 0x54]
mov ecx, dword [esp + 0x50]
mov esi, dword [esp + 0x674]
shl eax, 2
mov dword [esp + eax + 0x328], edx
add esi, 0xffffffff
mov dword [esp + eax + 0x324], ecx
je 0x43fa84
mov eax, dword [esp + 0x674]
mov edi, dword [esp + 0x668]
mov esi, dword [esp + 0x484]
lea ecx, [eax - 1]
mov eax, dword [esp + edi*4 + 0x558]
mov edx, dword [esp + ecx*4 + 0x2e4]
mov dword [esp + esi*4 + 0x364], 0
mov dword [esp + 0x3b4], eax
mov dword [esp + 0x3b8], edx
mov eax, dword [esp + 0x3b4]
mul dword [esp + 0x3b8]
mov dword [esp + 0x3c0], eax
mov dword [esp + 0x3bc], edx
mov eax, dword [esp + esi*4 + 0x324]
add eax, dword [esp + 0x3c0]
cmp eax, dword [esp + 0x3c0]
mov dword [esp + esi*4 + 0x324], eax
mov edx, 0
adc edx, 0
add esi, 0xffffffff
mov eax, esi
shl eax, 2
add edx, dword [esp + 0x3bc]
mov dword [esp + eax + 0x324], edx
add ecx, 0xffffffff
jne 0x43f9f0
mov dword [esp + 0x668], edi
mov dword [esp + 0x484], esi
mov dword [esp + eax + 0x364], 0
mov eax, dword [esp + 0x484]
add eax, 0xffffffff
test eax, eax
mov dword [esp + 0x484], eax
jl 0x43fb20
cmp eax, 6
jl 0x43fb02
mov edx, eax
xor eax, eax
mov dword [esp + edx*4 + 0x364], eax
mov dword [esp + edx*4 + 0x324], eax
mov dword [esp + edx*4 + 0x360], eax
mov dword [esp + edx*4 + 0x320], eax
mov dword [esp + edx*4 + 0x35c], eax
mov dword [esp + edx*4 + 0x31c], eax
mov dword [esp + edx*4 + 0x358], eax
mov dword [esp + edx*4 + 0x318], eax
mov dword [esp + edx*4 + 0x354], eax
mov dword [esp + edx*4 + 0x314], eax
add edx, 0xfffffffb
cmp edx, 6
jge 0x43faab
mov dword [esp + 0x484], edx
mov edx, dword [esp + 0x484]
xor eax, eax
mov dword [esp + edx*4 + 0x364], eax
mov dword [esp + edx*4 + 0x324], eax
add edx, 0xffffffff
test edx, edx
jge 0x43fb09
mov eax, dword [esp + 0x668]
add eax, 0xffffffff
mov dword [esp + 0x668], eax
je 0x441112
mov esi, eax
mov edi, dword [esp + 0x674]
mov dword [esp + 0x598], ebx
mov dword [esp + 0x59c], ebp
mov ebp, edi
test edi, edi
je 0x4413e8
mov eax, esi
shl eax, 2
mov ebx, ebp
shl ebx, 2
lea ecx, [eax + ebp*4]
mov eax, dword [esp + esi*4 + 0x558]
mov edx, dword [esp + ebx + 0x2e4]
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 + 0x324]
add eax, dword [esp + 0x62c]
cmp eax, dword [esp + 0x62c]
mov edx, dword [esp + ecx + 0x320]
mov dword [esp + ecx + 0x324], eax
mov eax, 0
adc eax, 0
add ebx, 0xfffffffc
add eax, dword [esp + 0x628]
add edx, eax
cmp edx, eax
mov eax, 0
adc eax, 0
mov dword [esp + ecx + 0x320], edx
add dword [esp + ecx + 0x35c], eax
add ecx, 0xfffffffc
add ebp, 0xffffffff
jne 0x43fb65
add esi, 0xffffffff
jne 0x43fb4e
jmp 0x441104
mov ecx, dword [esp + 0x668]
mov edi, dword [esp + 0x660]
mov dword [esp + 0x70], eax
lea edx, [edi + ecx]
lea esi, [edi + ecx - 1]
mov dword [esp + 0x484], edx
mov edx, dword [esp + edi*4 + 0x498]
mov dword [esp + 0x5d4], esi
mov dword [esp + 0x74], edx
mov eax, dword [esp + 0x74]
mul dword [esp + 0x70]
mov dword [esp + 0x6c], eax
mov dword [esp + 0x68], edx
mov eax, dword [esp + 0x5d4]
mov edx, dword [esp + 0x6c]
mov ecx, dword [esp + 0x68]
mov esi, dword [esp + 0x668]
shl eax, 2
mov dword [esp + eax + 0x51c], edx
add esi, 0xffffffff
mov dword [esp + eax + 0x518], ecx
je 0x43fd24
mov eax, dword [esp + 0x668]
mov esi, dword [esp + 0x660]
mov edi, dword [esp + 0x5d4]
lea ecx, [eax - 1]
mov eax, dword [esp + esi*4 + 0x498]
mov edx, dword [esp + ecx*4 + 0x558]
mov dword [esp + edi*4 + 0x4d8], 0
mov dword [esp + 0x5a0], eax
mov dword [esp + 0x5a4], edx
mov eax, dword [esp + 0x5a0]
mul dword [esp + 0x5a4]
mov dword [esp + 0x5ac], eax
mov dword [esp + 0x5a8], edx
mov eax, dword [esp + edi*4 + 0x518]
add eax, dword [esp + 0x5ac]
cmp eax, dword [esp + 0x5ac]
mov dword [esp + edi*4 + 0x518], eax
mov edx, 0
adc edx, 0
add edi, 0xffffffff
mov eax, edi
shl eax, 2
add edx, dword [esp + 0x5a8]
mov dword [esp + eax + 0x518], edx
add ecx, 0xffffffff
jne 0x43fc90
mov dword [esp + 0x660], esi
mov dword [esp + 0x5d4], edi
mov dword [esp + eax + 0x4d8], 0
mov eax, dword [esp + 0x5d4]
add eax, 0xffffffff
test eax, eax
mov dword [esp + 0x5d4], eax
jl 0x43fdc0
cmp eax, 6
jl 0x43fda2
mov edx, eax
xor eax, eax
mov dword [esp + edx*4 + 0x4d8], eax
mov dword [esp + edx*4 + 0x518], eax
mov dword [esp + edx*4 + 0x4d4], eax
mov dword [esp + edx*4 + 0x514], eax
mov dword [esp + edx*4 + 0x4d0], eax
mov dword [esp + edx*4 + 0x510], eax
mov dword [esp + edx*4 + 0x4cc], eax
mov dword [esp + edx*4 + 0x50c], eax
mov dword [esp + edx*4 + 0x4c8], eax
mov dword [esp + edx*4 + 0x508], eax
add edx, 0xfffffffb
cmp edx, 6
jge 0x43fd4b
mov dword [esp + 0x5d4], edx
mov edx, dword [esp + 0x5d4]
xor eax, eax
mov dword [esp + edx*4 + 0x4d8], eax
mov dword [esp + edx*4 + 0x518], eax
add edx, 0xffffffff
test edx, edx
jge 0x43fda9
mov eax, dword [esp + 0x660]
add eax, 0xffffffff
mov dword [esp + 0x660], eax
je 0x441412
mov esi, dword [esp + 0x668]
mov edi, eax
mov dword [esp + 0x598], ebx
mov dword [esp + 0x59c], ebp
mov ebp, esi
test esi, esi
je 0x4415d7
mov eax, edi
shl eax, 2
mov ebx, ebp
shl ebx, 2
lea ecx, [eax + ebp*4]
mov eax, dword [esp + edi*4 + 0x498]
mov edx, dword [esp + ebx + 0x558]
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 + 0x518]
add eax, dword [esp + 0x64c]
cmp eax, dword [esp + 0x64c]
mov edx, dword [esp + ecx + 0x514]
mov dword [esp + ecx + 0x518], eax
mov eax, 0
adc eax, 0
add ebx, 0xfffffffc
add eax, dword [esp + 0x648]
add edx, eax
cmp edx, eax
mov eax, 0
adc eax, 0
mov dword [esp + ecx + 0x514], edx
add dword [esp + ecx + 0x4d0], eax
add ecx, 0xfffffffc
add ebp, 0xffffffff
jne 0x43fe05
add edi, 0xffffffff
jne 0x43fdee
jmp 0x441404
test eax, eax
jl 0x43ff57
cmp eax, 0x37
jl 0x43ff49
mov edx, eax
mov ecx, edx
sar ecx, 3
lea esi, [ecx + ecx]
movzx eax, word [esi + 0x495a22]
shr eax, 5
cmp eax, edx
jg 0x43fed3
lea esi, [ecx + ecx + 2]
movzx edx, word [esi + 0x495a20]
mov ecx, dword [esp + 0x668]
mov eax, edx
and eax, 0x1f
shr edx, 5
sub ecx, edx
movsx esi, word [eax*2 + 0x495b04]
mov dword [esp + 0x668], ecx
mov dword [esp + 0x664], esi
shl eax, 4
mov edi, dword [eax + 0x49598c]
mov edx, dword [eax + 0x495988]
mov dword [esp + 0x228], edi
mov dword [esp + 0x22c], edx
mov edx, dword [eax + 0x495984]
mov eax, dword [eax + 0x495980]
mov dword [esp + 0x230], edx
mov dword [esp + 0x234], eax
mov eax, 4
mov dword [esp + 0x650], eax
jmp 0x43ffda
xor eax, eax
mov dword [esp + 0x650], eax
jmp 0x43ffda
mov edx, eax
neg edx
mov ecx, edx
sar ecx, 3
movzx eax, word [ecx*2 + 0x4958a0]
mov esi, eax
shr esi, 5
cmp esi, edx
jge 0x43ff7e
movzx eax, word [ecx*2 + 0x4958a2]
mov esi, eax
shr esi, 5
add dword [esp + 0x668], esi
and eax, 0x1f
movsx edx, word [eax*2 + 0x495ae8]
mov dword [esp + 0x664], edx
shl eax, 4
mov ecx, dword [eax + 0x49580c]
mov esi, dword [eax + 0x495808]
mov edi, dword [eax + 0x495804]
mov eax, dword [eax + 0x495800]
mov dword [esp + 0x228], ecx
mov dword [esp + 0x22c], esi
mov dword [esp + 0x230], edi
mov dword [esp + 0x234], eax
mov eax, 4
mov dword [esp + 0x650], eax
mov eax, dword [esp + 0x668]
cmp eax, 0x37
je 0x441ed3
lea edx, [eax - 0x1b]
mov dword [esp + 0x150], edx
test edx, edx
jle 0x441ebe
mov ecx, edx
movsx eax, word [ecx*2 + 0x495e7e]
mov edx, dword [ecx*8 + 0x495c9c]
mov esi, dword [ecx*8 + 0x495c98]
mov dword [esp + 0x5e8], eax
test esi, esi
mov dword [esp + 0x3c8], edx
mov dword [esp + 0x3cc], esi
jne 0x441ea1
mov eax, 2
mov dword [esp + 0x484], eax
add eax, 0xffffffff
mov edx, dword [esp + eax*4 + 0x3c4]
test edx, edx
je 0x44003d
mov dword [esp + 0x484], eax
mov eax, 0x1b
mov dword [esp + 0x668], eax
mov esi, dword [esp + 0x668]
movsx eax, word [esi*2 + 0x495e7e]
mov edx, dword [esi*8 + 0x495c9c]
mov edi, dword [esi*8 + 0x495c98]
mov dword [esp + 0xb8], eax
test edi, edi
lea ecx, [esp + 0x55c]
mov dword [esp + 0x66c], ecx
mov dword [esp + 0x560], edi
mov dword [ecx], edx
jne 0x441e89
mov eax, 2
mov dword [esp + 0x668], eax
mov edx, eax
mov eax, dword [esp + edx*4 + 0x554]
add edx, 0xffffffff
test eax, eax
je 0x4400af
mov dword [esp + 0x668], edx
mov edx, dword [esp + 0x150]
test edx, edx
jle 0x4418b9
mov edi, dword [esp + 0x484]
mov ecx, dword [esp + 0x668]
mov dword [esp + 0x58], eax
mov eax, dword [esp + edi*4 + 0x3c4]
mov dword [esp + 0x5c], eax
lea edx, [edi + ecx]
mov dword [esp + 0x150], edx
lea esi, [edi + ecx - 1]
mov dword [esp + 0x5ec], esi
mov dword [esp + 0x5d4], esi
mov eax, dword [esp + 0x58]
mul dword [esp + 0x5c]
mov dword [esp + 0x64], eax
mov dword [esp + 0x60], edx
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x5ec]
mov edx, dword [esp + 0x60]
mov esi, dword [esp + 0x484]
add esi, 0xffffffff
mov dword [esp + ecx*4 + 0x408], eax
mov dword [esp + ecx*4 + 0x404], edx
je 0x441e63
mov eax, dword [esp + 0x484]
mov edi, dword [esp + 0x668]
mov esi, dword [esp + 0x5d4]
lea ecx, [eax - 1]
mov eax, dword [esp + edi*4 + 0x558]
mov edx, dword [esp + ecx*4 + 0x3c4]
mov dword [esp + esi*4 + 0x444], 0
mov dword [esp + 0x488], eax
mov dword [esp + 0x48c], edx
mov eax, dword [esp + 0x488]
mul dword [esp + 0x48c]
mov dword [esp + 0x494], eax
mov dword [esp + 0x490], edx
mov eax, dword [esp + esi*4 + 0x404]
add eax, dword [esp + 0x494]
cmp eax, dword [esp + 0x494]
mov dword [esp + esi*4 + 0x404], eax
mov edx, 0
adc edx, 0
add esi, 0xffffffff
mov eax, esi
shl eax, 2
add edx, dword [esp + 0x490]
mov dword [esp + eax + 0x404], edx
add ecx, 0xffffffff
jne 0x440161
mov dword [esp + 0x668], edi
mov dword [esp + 0x5d4], esi
mov dword [esp + eax + 0x444], 0
mov eax, dword [esp + 0x5d4]
add eax, 0xffffffff
test eax, eax
mov dword [esp + 0x5d4], eax
jl 0x440291
cmp eax, 6
jl 0x440273
mov edx, eax
xor eax, eax
mov dword [esp + edx*4 + 0x444], eax
mov dword [esp + edx*4 + 0x404], eax
mov dword [esp + edx*4 + 0x440], eax
mov dword [esp + edx*4 + 0x400], eax
mov dword [esp + edx*4 + 0x43c], eax
mov dword [esp + edx*4 + 0x3fc], eax
mov dword [esp + edx*4 + 0x438], eax
mov dword [esp + edx*4 + 0x3f8], eax
mov dword [esp + edx*4 + 0x434], eax
mov dword [esp + edx*4 + 0x3f4], eax
add edx, 0xfffffffb
cmp edx, 6
jge 0x44021c
mov dword [esp + 0x5d4], edx
mov edx, dword [esp + 0x5d4]
xor eax, eax
mov dword [esp + edx*4 + 0x444], eax
mov dword [esp + edx*4 + 0x404], eax
add edx, 0xffffffff
test edx, edx
jge 0x44027a
mov eax, dword [esp + 0x668]
add eax, 0xffffffff
mov dword [esp + 0x668], eax
je 0x441619
mov esi, eax
mov edi, dword [esp + 0x484]
mov dword [esp + 0x598], ebx
mov dword [esp + 0x59c], ebp
mov ebp, edi
test edi, edi
je 0x441e47
mov eax, esi
shl eax, 2
mov ebx, ebp
shl ebx, 2
lea ecx, [eax + ebp*4]
mov eax, dword [esp + esi*4 + 0x558]
mov edx, dword [esp + ebx + 0x3c4]
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 + 0x404]
add eax, dword [esp + 0x63c]
cmp eax, dword [esp + 0x63c]
mov edx, dword [esp + ecx + 0x400]
mov dword [esp + ecx + 0x404], eax
mov eax, 0
adc eax, 0
add ebx, 0xfffffffc
add eax, dword [esp + 0x638]
add edx, eax
cmp edx, eax
mov eax, 0
adc eax, 0
mov dword [esp + ecx + 0x400], edx
add dword [esp + ecx + 0x43c], eax
add ecx, 0xfffffffc
add ebp, 0xffffffff
jne 0x4402d6
add esi, 0xffffffff
jne 0x4402bf
jmp 0x44160b
mov eax, dword [esp + 0x5e0]
mov edx, dword [esp + 0x5d0]
shr eax, 0x16
and eax, 7
or edx, eax
jne 0x440394
mov eax, 6
test al, 4
je 0x4403b8
test al, 2
je 0x4403aa
mov edx, 0xaaaa
mov dword [esp + 0x650], edx
jmp 0x4403e5
mov edx, 0xfa
mov dword [esp + 0x650], edx
jmp 0x4403e5
test al, 2
je 0x4403ca
mov edx, 0xfa00
mov dword [esp + 0x650], edx
jmp 0x4403e5
test al, 1
je 0x4403d9
xor edx, edx
mov dword [esp + 0x650], edx
jmp 0x4403e5
mov edx, 0xa8a8
mov dword [esp + 0x650], edx
cmp eax, 2
je 0x4403ef
cmp eax, 4
jne 0x4403f6
mov eax, 1
jmp 0x4403f8
xor eax, eax
mov esi, dword [esp + 0x654]
mov ecx, ebx
and ecx, 8
mov dword [esp + 0x5e8], ecx
lea esi, [esi + 0x406e]
xor edx, edx
test ecx, ecx
setne dl
cmp esi, 0x71
mov dword [esp + 0x5ec], edx
jle 0x44042b
mov esi, 0x71
jmp 0x440433
test esi, esi
jl 0x440820
mov edi, esi
sar edi, 5
mov dword [esp + 0x66c], edi
and esi, 0x1f
xor edx, edx
cmp edx, esi
adc edx, 0
lea edi, [edi + edx]
mov dword [esp + 0x5d0], edi
mov dword [esp + 0x670], edx
mov edx, dword [esp + 0x660]
cmp edx, edi
jae 0x44046d
test eax, eax
je 0x4407ee
mov eax, edx
mov edx, edi
mov dword [esp + 0x674], eax
test edx, edx
mov dword [esp + 0x660], edx
je 0x440753
mov eax, edi
mov edx, dword [esp + eax*4 + 0x498]
mov edi, dword [esp + 0x670]
mov dword [esp + 0x150], edx
test edi, edi
je 0x440598
neg esi
lea eax, [esi + 0x1f]
mov ecx, eax
mov edi, edx
shr edi, cl
add esi, 0x20
mov ecx, esi
and edi, 1
mov dword [esp + 0x484], edi
mov edi, 1
shl edi, cl
mov ecx, esi
mov dword [esp + 0x668], edi
mov edi, edx
shr edi, cl
mov ecx, eax
mov esi, 1
shl esi, cl
mov eax, dword [esp + 0x674]
and edi, 1
add esi, 0xffffffff
and esi, edx
mov edx, dword [esp + 0x5d0]
or dword [esp + 0x65c], esi
cmp eax, edx
mov dword [esp + 0x5d4], edi
jbe 0x440687
mov edx, dword [esp + 0x670]
mov eax, dword [esp + 0x66c]
mov ecx, dword [esp + 0x674]
lea eax, [eax + edx + 1]
cmp eax, ecx
ja 0x440687
mov edx, ecx
sub edx, eax
cmp edx, 6
jb 0x440570
mov edx, ecx
mov ecx, dword [esp + 0x65c]
lea edx, [edx - 6]
or ecx, dword [esp + eax*4 + 0x498]
or ecx, dword [esp + eax*4 + 0x49c]
or ecx, dword [esp + eax*4 + 0x4a0]
or ecx, dword [esp + eax*4 + 0x4a4]
or ecx, dword [esp + eax*4 + 0x4a8]
add eax, 5
cmp eax, edx
jbe 0x44053f
mov dword [esp + 0x65c], ecx
mov edx, dword [esp + 0x65c]
mov ecx, dword [esp + 0x674]
or edx, dword [esp + eax*4 + 0x498]
add eax, 1
cmp eax, ecx
jbe 0x44057e
mov dword [esp + 0x65c], edx
jmp 0x440687
mov eax, edx
mov edx, dword [esp + 0x5d0]
mov esi, dword [esp + edx*4 + 0x49c]
mov edi, dword [esp + 0x66c]
and eax, 1
mov dword [esp + 0x5d4], eax
mov eax, dword [esp + 0x670]
mov ecx, esi
shr ecx, 0x1f
add esi, esi
or dword [esp + 0x65c], esi
mov dword [esp + 0x484], ecx
lea edx, [edi + eax + 1]
mov eax, dword [esp + 0x674]
cmp eax, edx
jbe 0x44067b
mov edx, dword [esp + 0x670]
mov eax, edi
mov ecx, dword [esp + 0x674]
lea eax, [eax + edx + 2]
cmp eax, ecx
ja 0x441f2e
mov edx, ecx
sub edx, eax
cmp edx, 6
jb 0x44064a
mov edx, ecx
mov ecx, dword [esp + 0x65c]
lea edx, [edx - 6]
or ecx, dword [esp + eax*4 + 0x498]
or ecx, dword [esp + eax*4 + 0x49c]
or ecx, dword [esp + eax*4 + 0x4a0]
or ecx, dword [esp + eax*4 + 0x4a4]
or ecx, dword [esp + eax*4 + 0x4a8]
add eax, 5
cmp eax, edx
jbe 0x440619
mov dword [esp + 0x65c], ecx
mov edx, dword [esp + 0x65c]
mov ecx, dword [esp + 0x674]
or edx, dword [esp + eax*4 + 0x498]
add eax, 1
cmp eax, ecx
jbe 0x440658
mov dword [esp + 0x65c], edx
mov eax, 1
mov dword [esp + 0x668], eax
jmp 0x440687
mov eax, 1
mov dword [esp + 0x668], eax
mov esi, dword [esp + 0x65c]
mov edx, dword [esp + 0x5ec]
mov edi, dword [esp + 0x484]
xor eax, eax
test esi, esi
setne al
shl eax, 2
lea ecx, [eax + edx*8]
mov eax, dword [esp + 0x5d4]
lea eax, [edi + eax*2]
add ecx, eax
mov eax, dword [esp + 0x650]
shr eax, cl
test al, 1
je 0x4407ee
mov eax, dword [esp + 0x150]
mov edx, dword [esp + 0x668]
add eax, edx
mov dword [esp + 0x150], eax
cmp eax, edx
jae 0x440780
mov edx, dword [esp + 0x5d0]
mov esi, dword [esp + 0x670]
mov ecx, dword [esp + 0x66c]
mov dword [esp + edx*4 + 0x498], eax
mov dword [esp + 0x498], 0
lea edx, [ecx + esi - 1]
mov dword [esp + 0x660], edx
shl edx, 2
mov eax, dword [esp + edx + 0x498]
cmp eax, 0xffffffff
jne 0x440748
mov ecx, dword [esp + 0x660]
add ecx, 0xffffffff
mov edx, ecx
shl edx, 2
mov eax, dword [esp + edx + 0x498]
cmp eax, 0xffffffff
je 0x44072d
mov dword [esp + 0x660], ecx
mov ecx, dword [esp + 0x660]
test ecx, ecx
jne 0x440774
add dword [esp + 0x654], 1
mov eax, 1
mov dword [esp + 0x660], eax
mov dword [esp + 0x49c], 0x80000000
jmp 0x4407ee
add eax, 1
mov dword [esp + edx + 0x498], eax
jmp 0x4407ee
mov eax, dword [esp + 0x670]
test eax, eax
je 0x4407b2
mov eax, edx
mov edx, dword [esp + 0x150]
mov ecx, dword [esp + 0x5d0]
add eax, 0xffffffff
not eax
and edx, eax
mov dword [esp + ecx*4 + 0x498], edx
mov dword [esp + 0x150], edx
jmp 0x4407c7
mov eax, dword [esp + 0x150]
mov edx, dword [esp + 0x5d0]
mov dword [esp + edx*4 + 0x498], eax
mov eax, dword [esp + 0x150]
test eax, eax
jne 0x4407ee
mov eax, dword [esp + 0x660]
mov edx, dword [esp + eax*4 + 0x494]
add eax, 0xffffffff
test edx, edx
je 0x4407d9
mov dword [esp + 0x660], eax
mov eax, dword [esp + 0x654]
cmp eax, 0x4000
jg 0x440820
cmp eax, 0xffffc002
jg 0x4408f9
cmp eax, 0xffffbf93
jl 0x440820
mov eax, dword [esp + 0x5e0]
test eax, 0x10000000
je 0x4408e0
test ebx, 0x80
je 0x440884
mov eax, dword [esp + 0x5e8]
test eax, eax
je 0x44083a
mov esi, 0x496170
jmp 0x44083f
mov esi, 0x496160
mov edi, dword [esp + 0x5e0]
mov eax, dword [esi]
mov edx, dword [esi + 4]
mov ecx, dword [esi + 8]
mov esi, dword [esi + 0xc]
test edi, 0x4000
mov dword [esp + 0x5b0], eax
mov dword [esp + 0x5b4], edx
mov dword [esp + 0x5b8], ecx
mov dword [esp + 0x5bc], esi
je 0x440a3c
or ebx, 0x9000000
jmp 0x440a3c
mov eax, dword [esp + 0x5e8]
test eax, eax
je 0x440896
mov esi, 0x4961b0
jmp 0x44089b
mov esi, 0x4961a0
mov edi, dword [esp + 0x5e0]
mov eax, dword [esi]
mov edx, dword [esi + 4]
mov ecx, dword [esi + 8]
mov esi, dword [esi + 0xc]
test edi, 0x2000
mov dword [esp + 0x5b0], eax
mov dword [esp + 0x5b4], edx
mov dword [esp + 0x5b8], ecx
mov dword [esp + 0x5bc], esi
je 0x440a3c
or ebx, 0x8000000
jmp 0x440a3c
test eax, 0x4000
je 0x4408f9
or ebx, 0x9000000
mov eax, ebx
and eax, 8
mov dword [esp + 0x5e8], eax
mov eax, dword [esp + 0x49c]
mov edx, dword [esp + 0x660]
mov dword [esp + 0x5ec], eax
cmp edx, 2
jae 0x44091e
xor eax, eax
mov dword [esp + 0x484], eax
jmp 0x44092c
mov eax, dword [esp + 0x4a0]
mov dword [esp + 0x484], eax
mov eax, edx
cmp eax, 3
jae 0x44093e
xor eax, eax
mov dword [esp + 0x150], eax
jmp 0x44094c
mov eax, dword [esp + 0x4a4]
mov dword [esp + 0x150], eax
mov eax, edx
cmp eax, 4
jae 0x44095e
xor eax, eax
mov dword [esp + 0x5d4], eax
jmp 0x44096c
mov eax, dword [esp + 0x4a8]
mov dword [esp + 0x5d4], eax
mov eax, dword [esp + 0x654]
cmp eax, 0xffffc002
jle 0x440ab8
mov edx, dword [esp + 0x5d4]
mov esi, dword [esp + 0x150]
shr edx, 0xf
mov eax, esi
shl eax, 0x11
or edx, eax
mov eax, dword [esp + 0x484]
mov dword [esp + 0x5d4], edx
mov edx, dword [esp + 0x5ec]
shr esi, 0xf
mov ecx, eax
shl ecx, 0x11
or esi, ecx
mov dword [esp + 0x150], esi
shr eax, 0xf
mov edi, edx
shl edi, 0x11
or eax, edi
mov dword [esp + 0x484], eax
mov eax, dword [esp + 0x654]
shr edx, 0xf
and edx, 0xfffeffff
add eax, 0x3ffe
shl eax, 0x10
or edx, eax
mov dword [esp + 0x5ec], edx
mov eax, dword [esp + 0x5e8]
test eax, eax
je 0x440a04
or dword [esp + 0x5ec], 0x80000000
mov eax, dword [esp + 0x5d4]
mov edx, dword [esp + 0x150]
mov ecx, dword [esp + 0x484]
mov esi, dword [esp + 0x5ec]
mov dword [esp + 0x5b0], eax
mov dword [esp + 0x5b4], edx
mov dword [esp + 0x5b8], ecx
mov dword [esp + 0x5bc], esi
mov eax, dword [esp + 0x5dc]
test eax, eax
je 0x440a6c
mov eax, dword [esp + 0x5e0]
test eax, 0x40000
jne 0x440a5c
mov dword [esp + 0x658], ebp
mov edx, dword [esp + 0x5dc]
mov eax, dword [esp + 0x658]
mov dword [edx], eax
mov eax, dword [esp + 0x6a8]
test eax, eax
je 0x440a7c
shr ebx, 0x18
mov dword [eax], ebx
mov edx, dword [esp + 0x5b0]
mov ebp, dword [esp + 0x5e4]
mov dword [ebp], edx
mov ecx, dword [esp + 0x5b4]
mov dword [ebp + 4], ecx
mov eax, dword [esp + 0x5b8]
mov dword [ebp + 8], eax
mov ebx, dword [esp + 0x5bc]
mov dword [ebp + 0xc], ebx
mov eax, ebp
add esp, 0x678
pop ebx
pop ebp
pop esi
pop edi
ret
add eax, 0x406e
neg eax
mov dword [esp + 0x654], eax
lea edi, [eax + 0x80]
cmp edi, 0x20
jl 0x441f64
add eax, 0x60
mov dword [esp + 0x654], eax
cmp eax, 0xc0
jl 0x440b15
add edi, 0xffffff60
cmp edi, 0xe0
jge 0x440ae6
xor eax, eax
mov dword [esp + 0x150], eax
lea ecx, [edi - 0x20]
mov dword [esp + 0x484], eax
mov dword [esp + 0x5ec], eax
mov dword [esp + 0x654], ecx
mov edi, dword [esp + 0x654]
mov eax, dword [esp + 0x5ec]
mov ecx, dword [esp + 0x150]
mov esi, dword [esp + 0x484]
jmp 0x440b38
xor eax, eax
add edi, 0xffffffe0
mov edx, ecx
mov ecx, esi
mov esi, eax
cmp edi, 0x20
jge 0x440b33
jmp 0x441f3f
mov ecx, dword [esp + 0x660]
mov edx, dword [esp + 0x674]
mov esi, dword [0x4961e4]
add ecx, 1
cmp ecx, 2
mov dword [esp + 0x660], ecx
mov dword [esp + ecx*4 + 0x78], edx
mov edx, dword [esp + 0x7c]
jb 0x44215d
mov dword [esp + 0x598], ebx
mov ebx, ecx
mov dword [esp + 0x59c], ebp
mov ecx, 2
jmp 0x440b95
mov edx, dword [esp + 0x158]
cmp ecx, ebx
jne 0x440ba0
mov esi, dword [eax*4 + 0x4961c0]
xor edi, edi
lea ebp, [ecx - 1]
test ebp, ebp
jle 0x440c3c
mov dword [esp + 0x158], 0
mov dword [esp + 0x5d8], eax
mov edi, 1
mov dword [esp + 0x5f0], esi
mov dword [esp + 0x5f4], edx
mov eax, dword [esp + 0x5f0]
mul dword [esp + 0x5f4]
mov dword [esp + 0x5fc], eax
mov dword [esp + 0x5f8], edx
mov edx, dword [esp + edi*4 + 0x158]
mov eax, dword [esp + edi*4 + 0x154]
add eax, dword [esp + 0x5fc]
cmp eax, dword [esp + 0x5fc]
mov dword [esp + edi*4 + 0x154], eax
mov eax, 0
adc eax, 0
add eax, dword [esp + 0x5f8]
mov dword [esp + edi*4 + 0x158], eax
add edi, 1
cmp edi, ebp
jle 0x440bc4
mov eax, dword [esp + 0x5d8]
mov edi, dword [esp + 0x158]
mov edx, dword [esp + ecx*4 + 0x78]
add edi, edx
mov dword [esp + 0x158], edi
cmp edi, edx
jae 0x440c9b
mov dword [esp + ecx*4 + 0x158], 0
mov edx, dword [esp + 0x15c]
cmp edx, 0xffffffff
je 0x440c72
mov edx, dword [esp + 0x15c]
mov ebp, 2
jmp 0x440c91
mov ebp, 2
mov dword [esp + ebp*4 + 0x154], 0
mov edx, dword [esp + ebp*4 + 0x158]
add ebp, 1
cmp edx, 0xffffffff
je 0x440c77
add edx, 1
mov dword [esp + ebp*4 + 0x154], edx
add ecx, 1
cmp ecx, ebx
jbe 0x440b8e
jmp 0x441ff2
mov esi, dword [esp + 0x664]
mov dword [esp + 0x658], ebp
mov dword [esp + 0x5d8], eax
mov dword [esp + 0x484], edi
add ebp, 1
add esi, 0xffffffff
xor edx, edx
xor ecx, ecx
mov dword [esp + 0x668], ecx
test esi, esi
je case.default.0x440cfa
movsx eax, byte [ebp]
or ebx, 0x10
lea edi, [eax - 9]
cmp edi, 0x56
ja case.default.0x440cfa
mov edi, dword [edi*4 + 0x494c60]
jmp edi
mov eax, dword [esp + 0x5e0]
test al, 0x10
jne 0x440d8c
jmp case.default.0x440cfa
lea ecx, [ecx + ecx*4]
or ebx, 0x40
lea ecx, [eax + ecx*2]
add ecx, 0xffffffd0
add edx, 1
jmp 0x440d8c
test edx, edx
jne case.0x440cfa.49
or ebx, 0x40
jmp 0x440d8c
mov eax, dword [esp + 0x5e0]
test al, 8
jne 0x440d8c
jmp case.default.0x440cfa
or ebx, 0x80
jmp case.0x440cfa.43
mov eax, dword [esp + 0x5e0]
test al, 4
jne 0x440d8c
jmp case.default.0x440cfa
mov eax, ebx
and eax, 0x20
or eax, edx
jne 0x440db1
or ebx, 0x20
jmp 0x440d8c
mov eax, dword [esp + 0x5e0]
test al, 2
jne 0x440d8c
jmp 0x440dcb
mov eax, dword [esp + 0x5d8]
mov edi, dword [esp + 0x484]
mov dword [esp + 0x668], ecx
jmp 0x43e823
mov eax, dword [esp + 0x5e0]
test al, 1
je case.default.0x440cfa
add esi, 0xffffffff
add ebp, 1
jmp 0x440cd8
mov eax, dword [esp + 0x5d8]
mov edi, dword [esp + 0x484]
mov dword [esp + 0x668], ecx
jmp 0x43e823
mov eax, dword [esp + 0x5d8]
mov edi, dword [esp + 0x484]
mov dword [esp + 0x668], ecx
jmp 0x43e823
test al, 0x40
je case.default.0x440cfa
mov eax, 0x30
jmp case.0x440cfa.48
mov esi, dword [esp + 0x664]
jmp 0x440cb2
mov esi, dword [esp + 0x664]
mov eax, ebx
and eax, 0x1800
mov dword [esp + 0x484], eax
cmp eax, 0x800
jne 0x440e39
mov eax, dword [0x496190]
mov edx, dword [0x496194]
mov ecx, dword [0x496198]
mov edi, dword [0x49619c]
mov dword [esp + 0x5b0], eax
mov dword [esp + 0x5b4], edx
mov dword [esp + 0x5b8], ecx
mov dword [esp + 0x5bc], edi
jmp 0x440ecb
lea eax, [esp]
push ebp
push eax
call fcn.0044d7a8
add esp, 8
mov eax, dword [esp + 8]
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x5b0], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x5b4], edx
mov edx, dword [esp]
mov dword [esp + 0x5b8], ecx
sub esi, edx
test esi, esi
jl 0x440e7d
mov dword [esp + 0x5bc], eax
jmp 0x440eb4
mov eax, dword [0x496190]
mov edx, dword [0x496194]
mov ecx, dword [0x496198]
mov esi, dword [0x49619c]
mov dword [esp + 0x5b0], eax
mov dword [esp + 0x5b4], edx
mov dword [esp + 0x5b8], ecx
xor edx, edx
mov dword [esp + 0x5bc], esi
xor esi, esi
add ebp, edx
test bl, 2
je 0x440ecb
test bl, 8
jne 0x440ecb
and dword [esp + 0x5bc], 0x7fffffff
mov eax, dword [esp + 0x5e0]
test al, 2
je 0x440eeb
test esi, esi
je 0x440eeb
movsx eax, byte [ebp]
cmp eax, 0x20
jne 0x440eeb
add ebp, 1
add esi, 0xffffffff
jne 0x440eda
mov eax, dword [esp + 0x484]
cmp eax, 0x800
jne 0x440f13
test esi, esi
je 0x440f2f
mov eax, dword [esp + 0x5e0]
test eax, 0x8000
je 0x440f2f
or ebx, 0x3000000
jmp 0x440f2f
movsx eax, byte [ebp]
test eax, eax
je 0x440f2f
mov eax, dword [esp + 0x5e0]
test eax, 0x8000
je 0x440f2f
or ebx, 0x3000000
mov eax, dword [esp + 0x5e0]
and ebx, 0xfffffff7
test eax, 0x40000000
je 0x440f46
or ebx, 0xa000000
mov eax, dword [esp + 0x5dc]
test eax, eax
je 0x440f53
mov dword [eax], ebp
mov eax, dword [esp + 0x6a8]
test eax, eax
je 0x440f63
shr ebx, 0x18
mov dword [eax], ebx
mov edx, dword [esp + 0x5b0]
mov ebp, dword [esp + 0x5e4]
mov dword [ebp], edx
mov ecx, dword [esp + 0x5b4]
mov dword [ebp + 4], ecx
mov eax, dword [esp + 0x5b8]
mov dword [ebp + 8], eax
mov ebx, dword [esp + 0x5bc]
mov dword [ebp + 0xc], ebx
mov eax, ebp
add esp, 0x678
pop ebx
pop ebp
pop esi
pop edi
ret
mov edi, dword [esp + 0x484]
mov dword [esp + 0x664], esi
mov esi, dword [esp + 0x150]
jmp case.0x43e3cd.10
mov esi, dword [esp + 0x150]
mov dword [esp + 0x664], edi
mov edi, dword [esp + 0x484]
jmp 0x43e67e
mov esi, dword [esp + 0x150]
mov dword [esp + 0x664], edi
mov edi, dword [esp + 0x484]
jmp 0x43e5e2
movsx ecx, byte [edx]
jmp 0x43e5da
mov esi, dword [esp + 0x664]
jmp 0x440cb2
mov ecx, dword [esp + 0x668]
mov edx, dword [esp + 0x660]
cmp edx, ecx
jae 0x441039
mov eax, dword [esp + 0x674]
mov dword [esp + 0x674], esi
add edx, 1
mov dword [esp + 0x660], edx
mov dword [esp + edx*4 + 0x78], eax
mov eax, 1
jmp 0x43e7d5
or dword [esp + 0x65c], esi
jmp 0x43e7d5
movsx ecx, byte [edx]
mov dword [esp + 0xbc], ecx
jmp 0x43e528
mov esi, dword [esp + 0x664]
add ebp, 0xffffffff
add esi, 1
jmp 0x440cb2
test dl, 0x40
je case.0x43e3cd.10
mov esi, 0x30
jmp case.0x43e3cd.48
mov esi, dword [esp + 0x664]
mov dword [esp + 0x658], ebp
xor edx, edx
mov dword [esp + 0x668], edx
jmp 0x43e823
mov esi, dword [esp + 0x664]
jmp 0x441080
xor eax, eax
jmp 0x43e9a3
mov esi, 1
mov edx, eax
neg edx
add edx, 0x20
jmp 0x43eae4
xor eax, eax
jmp 0x43eb33
lea edx, [esp + 0x49c]
mov dword [esp + 0xbc], edx
mov eax, 4
mov dword [esp + 0x660], eax
jmp 0x43ed70
mov ebp, 4
jmp 0x43f2c8
mov edx, 2
jmp 0x43f1b3
mov ebp, 4
jmp 0x43f86e
mov edx, 2
jmp 0x43f759
mov ebx, dword [esp + 0x598]
mov ebp, dword [esp + 0x59c]
mov eax, dword [esp + 0x5e8]
mov ecx, dword [esp + 0xb8]
add ecx, dword [esp + 0x670]
mov dword [esp + 0x668], eax
mov dword [esp + 0xb8], ecx
mov ecx, eax
shl ecx, 2
add eax, 0xffffffff
mov edx, dword [esp + ecx + 0x324]
mov dword [esp + ecx + 0x558], edx
mov dword [esp + 0x5e8], eax
je 0x441183
xor edx, edx
add edx, dword [esp + eax*4 + 0x364]
mov esi, dword [esp + eax*4 + 0x324]
add esi, edx
cmp esi, edx
mov dword [esp + eax*4 + 0x558], esi
mov edx, 0
adc edx, 0
add eax, 0xffffffff
jne 0x441156
mov edx, dword [esp + ecx + 0x558]
test edx, edx
jne 0x4411b3
mov edx, dword [esp + 0x5e8]
jmp 0x441193
add edx, 0xffffffff
mov ecx, edx
shl ecx, 2
mov eax, dword [esp + ecx + 0x558]
test eax, eax
je 0x441190
mov dword [esp + 0x5e8], edx
mov eax, edx
mov dword [esp + 0x668], eax
mov eax, dword [esp + 0x66c]
mov eax, dword [eax]
test eax, eax
jle 0x4412c0
mov edx, dword [esp + 0x66c]
add dword [esp + 0xb8], 0xffffffff
add eax, eax
mov dword [edx], eax
mov eax, dword [esp + 0x668]
cmp eax, 2
jb 0x4413dc
lea edx, [eax - 2]
cmp edx, 5
jb 0x4413d2
mov edx, 2
lea eax, [eax - 5]
mov esi, dword [esp + edx*4 + 0x558]
mov edi, dword [esp + edx*4 + 0x55c]
shr esi, 0x1f
shr edi, 0x1f
or dword [esp + edx*4 + 0x554], esi
mov esi, dword [esp + edx*4 + 0x558]
add esi, esi
or esi, edi
mov edi, dword [esp + edx*4 + 0x55c]
mov dword [esp + edx*4 + 0x558], esi
mov esi, dword [esp + edx*4 + 0x560]
add edi, edi
shr esi, 0x1f
or edi, esi
mov esi, dword [esp + edx*4 + 0x564]
mov dword [esp + edx*4 + 0x55c], edi
mov edi, dword [esp + edx*4 + 0x560]
add edi, edi
shr esi, 0x1f
or edi, esi
mov esi, dword [esp + edx*4 + 0x564]
add esi, esi
mov dword [esp + edx*4 + 0x560], edi
mov dword [esp + edx*4 + 0x564], esi
add edx, 4
cmp edx, eax
jbe 0x4411fb
mov edi, dword [esp + 0x668]
mov eax, dword [esp + edx*4 + 0x558]
mov esi, dword [esp + edx*4 + 0x558]
shr eax, 0x1f
or dword [esp + edx*4 + 0x554], eax
add esi, esi
mov dword [esp + edx*4 + 0x558], esi
add edx, 1
cmp edx, edi
jbe 0x44127e
mov eax, dword [esp + ecx + 0x558]
mov dword [esp + 0x668], edi
test eax, eax
jne 0x4412c0
add dword [esp + 0x668], 0xffffffff
mov eax, dword [esp + 0x668]
cmp eax, 4
jb 0x4413ae
mov eax, dword [esp + 0x56c]
mov edx, dword [esp + 0x568]
shr eax, 0x1f
add edx, eax
mov dword [esp + 0x568], edx
cmp edx, eax
jae 0x441382
mov eax, dword [esp + 0x564]
mov dword [esp + 0x558], 0
cmp eax, 0xffffffff
je 0x441317
mov eax, 3
mov dword [esp + 0x668], eax
jmp 0x44133d
mov eax, 3
mov dword [esp + 0x668], eax
add eax, 0xffffffff
mov edx, dword [esp + eax*4 + 0x558]
cmp edx, 0xffffffff
je 0x441323
mov dword [esp + 0x668], eax
test eax, eax
je 0x441355
mov edx, eax
mov eax, dword [esp + edx*4 + 0x558]
add eax, 1
mov dword [esp + edx*4 + 0x558], eax
jmp 0x43fc06
mov eax, dword [esp + 0x66c]
add dword [esp + 0xb8], 1
mov edx, 1
mov dword [eax], 0x80000000
mov eax, dword [esp + 0x55c]
mov dword [esp + 0x668], edx
jmp 0x43fc06
test edx, edx
jne 0x4413ba
mov eax, 4
mov dword [esp + 0x668], eax
mov edx, eax
mov eax, dword [esp + edx*4 + 0x554]
add edx, 0xffffffff
test eax, eax
je 0x441394
mov dword [esp + 0x668], edx
jmp 0x43fc06
mov eax, dword [esp + eax*4 + 0x558]
jmp 0x43fc06
mov eax, 4
mov dword [esp + 0x668], eax
mov eax, dword [esp + 0x568]
jmp 0x43fc06
mov edx, 2
jmp 0x441277
mov eax, dword [esp + ecx + 0x558]
jmp 0x4412b4
add esi, 0xffffffff
jne 0x43fb4e
mov ebx, dword [esp + 0x598]
mov ebp, dword [esp + 0x59c]
jmp 0x441112
mov ebx, dword [esp + 0x598]
mov ebp, dword [esp + 0x59c]
mov eax, dword [esp + 0x484]
mov ecx, dword [esp + 0x654]
add ecx, dword [esp + 0xb8]
mov dword [esp + 0x660], eax
mov dword [esp + 0x654], ecx
mov ecx, eax
shl ecx, 2
add eax, 0xffffffff
mov edx, dword [esp + ecx + 0x518]
mov dword [esp + ecx + 0x498], edx
mov dword [esp + 0x484], eax
je 0x441483
xor edx, edx
add edx, dword [esp + eax*4 + 0x4d8]
mov esi, dword [esp + eax*4 + 0x518]
add esi, edx
cmp esi, edx
mov dword [esp + eax*4 + 0x498], esi
mov edx, 0
adc edx, 0
add eax, 0xffffffff
jne 0x441456
mov edx, dword [esp + ecx + 0x498]
test edx, edx
jne 0x4414b1
mov eax, dword [esp + 0x484]
jmp 0x441493
add eax, 0xffffffff
mov ecx, eax
shl ecx, 2
mov edx, dword [esp + ecx + 0x498]
test edx, edx
je 0x441490
mov dword [esp + 0x484], eax
mov dword [esp + 0x660], eax
mov eax, dword [esp + 0xbc]
mov eax, dword [eax]
test eax, eax
jle 0x440377
mov edx, dword [esp + 0xbc]
add dword [esp + 0x654], 0xffffffff
add eax, eax
mov dword [edx], eax
mov eax, dword [esp + 0x660]
cmp eax, 2
jb 0x4415c7
lea edx, [eax - 2]
cmp edx, 5
jb 0x4415d0
mov edx, 2
lea eax, [eax - 5]
mov esi, dword [esp + edx*4 + 0x498]
mov edi, dword [esp + edx*4 + 0x49c]
shr esi, 0x1f
shr edi, 0x1f
or dword [esp + edx*4 + 0x494], esi
mov esi, dword [esp + edx*4 + 0x498]
add esi, esi
or esi, edi
mov edi, dword [esp + edx*4 + 0x49c]
mov dword [esp + edx*4 + 0x498], esi
mov esi, dword [esp + edx*4 + 0x4a0]
add edi, edi
shr esi, 0x1f
or edi, esi
mov esi, dword [esp + edx*4 + 0x4a4]
mov dword [esp + edx*4 + 0x49c], edi
mov edi, dword [esp + edx*4 + 0x4a0]
add edi, edi
shr esi, 0x1f
or edi, esi
mov esi, dword [esp + edx*4 + 0x4a4]
add esi, esi
mov dword [esp + edx*4 + 0x4a0], edi
mov dword [esp + edx*4 + 0x4a4], esi
add edx, 4
cmp edx, eax
jbe 0x4414f9
mov edi, dword [esp + 0x660]
mov eax, dword [esp + edx*4 + 0x498]
mov esi, dword [esp + edx*4 + 0x498]
shr eax, 0x1f
or dword [esp + edx*4 + 0x494], eax
add esi, esi
mov dword [esp + edx*4 + 0x498], esi
add edx, 1
cmp edx, edi
jbe 0x44157c
mov eax, dword [esp + ecx + 0x498]
mov dword [esp + 0x660], edi
test eax, eax
jne 0x440377
add dword [esp + 0x660], 0xffffffff
jmp 0x440377
mov eax, dword [esp + ecx + 0x498]
jmp 0x4415b2
mov edx, 2
jmp 0x441575
add edi, 0xffffffff
jne 0x43fdee
mov ebx, dword [esp + 0x598]
mov ebp, dword [esp + 0x59c]
jmp 0x441412
mov eax, 4
mov dword [esp + 0x668], eax
mov eax, dword [esp + 0x568]
jmp 0x43f95c
mov ebx, dword [esp + 0x598]
mov ebp, dword [esp + 0x59c]
mov edx, dword [esp + 0x150]
mov eax, dword [esp + 0xb8]
add eax, dword [esp + 0x5e8]
mov ecx, dword [esp + 0x5ec]
mov dword [esp + 0x668], edx
test ecx, ecx
mov dword [esp + 0xb8], eax
mov eax, dword [esp + edx*4 + 0x404]
mov dword [esp + edx*4 + 0x558], eax
je 0x441695
mov eax, dword [esp + 0x150]
xor edx, edx
lea eax, [eax - 1]
add edx, dword [esp + eax*4 + 0x444]
mov ecx, dword [esp + eax*4 + 0x404]
add ecx, edx
cmp ecx, edx
mov dword [esp + eax*4 + 0x558], ecx
mov edx, 0
adc edx, 0
add eax, 0xffffffff
jne 0x441661
mov eax, dword [esp + 0x150]
mov eax, dword [esp + eax*4 + 0x558]
test eax, eax
jne 0x4416b5
mov eax, dword [esp + 0x668]
add eax, 0xffffffff
mov edx, dword [esp + eax*4 + 0x558]
test edx, edx
je 0x4416a0
mov dword [esp + 0x668], eax
mov eax, dword [esp + 0x66c]
mov eax, dword [eax]
test eax, eax
jle 0x4417af
mov edx, dword [esp + 0x66c]
add dword [esp + 0xb8], 0xffffffff
add eax, eax
mov dword [edx], eax
mov eax, dword [esp + 0x668]
cmp eax, 2
jb 0x4417af
lea edx, [eax - 2]
cmp edx, 5
jb 0x441e3d
mov edx, 2
lea eax, [eax - 5]
mov ecx, dword [esp + edx*4 + 0x558]
mov edi, dword [esp + edx*4 + 0x558]
mov esi, dword [esp + edx*4 + 0x55c]
shr ecx, 0x1f
add edi, edi
shr esi, 0x1f
or dword [esp + edx*4 + 0x554], ecx
mov ecx, dword [esp + edx*4 + 0x560]
or edi, esi
mov esi, dword [esp + edx*4 + 0x55c]
mov dword [esp + edx*4 + 0x558], edi
add esi, esi
shr ecx, 0x1f
or esi, ecx
mov ecx, dword [esp + edx*4 + 0x564]
mov dword [esp + edx*4 + 0x55c], esi
shr ecx, 0x1f
mov esi, dword [esp + edx*4 + 0x560]
add esi, esi
or esi, ecx
mov ecx, dword [esp + edx*4 + 0x564]
add ecx, ecx
mov dword [esp + edx*4 + 0x560], esi
mov dword [esp + edx*4 + 0x564], ecx
add edx, 4
cmp edx, eax
jbe 0x4416fd
mov esi, dword [esp + 0x668]
mov eax, dword [esp + edx*4 + 0x558]
mov ecx, dword [esp + edx*4 + 0x558]
shr eax, 0x1f
or dword [esp + edx*4 + 0x554], eax
add ecx, ecx
mov dword [esp + edx*4 + 0x558], ecx
add edx, 1
cmp edx, esi
jbe 0x441780
mov dword [esp + 0x668], esi
mov eax, dword [esp + 0x668]
mov edx, dword [esp + eax*4 + 0x558]
test edx, edx
jne 0x4417c9
add dword [esp + 0x668], 0xffffffff
mov eax, dword [esp + 0x668]
cmp eax, 4
jb 0x4418b2
mov eax, dword [esp + 0x56c]
mov edx, dword [esp + 0x568]
shr eax, 0x1f
add edx, eax
mov dword [esp + 0x568], edx
cmp edx, eax
jae 0x441885
mov eax, dword [esp + 0x564]
mov dword [esp + 0x558], 0
cmp eax, 0xffffffff
je 0x441820
mov eax, 3
mov dword [esp + 0x668], eax
jmp 0x441846
mov eax, 3
mov dword [esp + 0x668], eax
add eax, 0xffffffff
mov edx, dword [esp + eax*4 + 0x558]
cmp edx, 0xffffffff
je 0x44182c
mov dword [esp + 0x668], eax
test eax, eax
je 0x44185b
mov edx, eax
mov eax, dword [esp + edx*4 + 0x558]
add eax, 1
mov dword [esp + edx*4 + 0x558], eax
jmp 0x4418b9
mov eax, dword [esp + 0x66c]
add dword [esp + 0xb8], 1
mov edx, 1
mov dword [eax], 0x80000000
mov eax, dword [esp + 0x55c]
mov dword [esp + 0x668], edx
jmp 0x4418b9
test edx, edx
jne 0x441e25
mov eax, 4
mov dword [esp + 0x668], eax
mov edx, eax
mov eax, dword [esp + edx*4 + 0x554]
add edx, 0xffffffff
test eax, eax
je 0x44189b
mov dword [esp + 0x668], edx
jmp 0x4418b9
mov eax, dword [esp + eax*4 + 0x558]
mov edx, dword [esp + 0x650]
test edx, edx
je 0x43f95c
mov edi, edx
mov ecx, dword [esp + 0x668]
mov dword [esp + 0x28], eax
mov eax, dword [esp + edi*4 + 0x224]
mov dword [esp + 0x2c], eax
lea edx, [ecx + edi]
mov dword [esp + 0x5e8], edx
lea esi, [ecx + edi - 1]
mov dword [esp + 0x484], esi
mov eax, dword [esp + 0x28]
mul dword [esp + 0x2c]
mov dword [esp + 0x34], eax
mov dword [esp + 0x30], edx
mov eax, dword [esp + 0x484]
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
mov esi, dword [esp + 0x650]
shl eax, 2
mov dword [esp + eax + 0x198], edx
add esi, 0xffffffff
mov dword [esp + eax + 0x194], ecx
je 0x4419e1
mov eax, dword [esp + 0x650]
mov esi, dword [esp + 0x668]
mov edi, dword [esp + 0x484]
lea ecx, [eax - 1]
mov eax, dword [esp + esi*4 + 0x558]
mov edx, dword [esp + ecx*4 + 0x224]
mov dword [esp + edi*4 + 0x1d4], 0
mov dword [esp + 0x214], eax
mov dword [esp + 0x218], edx
mov eax, dword [esp + 0x214]
mul dword [esp + 0x218]
mov dword [esp + 0x220], eax
mov dword [esp + 0x21c], edx
mov eax, dword [esp + edi*4 + 0x194]
add eax, dword [esp + 0x220]
cmp eax, dword [esp + 0x220]
mov dword [esp + edi*4 + 0x194], eax
mov edx, 0
adc edx, 0
add edi, 0xffffffff
mov eax, edi
shl eax, 2
add edx, dword [esp + 0x21c]
mov dword [esp + eax + 0x194], edx
add ecx, 0xffffffff
jne 0x44194d
mov dword [esp + 0x668], esi
mov dword [esp + 0x484], edi
mov dword [esp + eax + 0x1d4], 0
mov eax, dword [esp + 0x484]
add eax, 0xffffffff
test eax, eax
mov dword [esp + 0x484], eax
jl 0x441a7d
cmp eax, 6
jl 0x441a5f
mov edx, eax
xor eax, eax
mov dword [esp + edx*4 + 0x1d4], eax
mov dword [esp + edx*4 + 0x194], eax
mov dword [esp + edx*4 + 0x1d0], eax
mov dword [esp + edx*4 + 0x190], eax
mov dword [esp + edx*4 + 0x1cc], eax
mov dword [esp + edx*4 + 0x18c], eax
mov dword [esp + edx*4 + 0x1c8], eax
mov dword [esp + edx*4 + 0x188], eax
mov dword [esp + edx*4 + 0x1c4], eax
mov dword [esp + edx*4 + 0x184], eax
add edx, 0xfffffffb
cmp edx, 6
jge 0x441a08
mov dword [esp + 0x484], edx
mov edx, dword [esp + 0x484]
xor eax, eax
mov dword [esp + edx*4 + 0x1d4], eax
mov dword [esp + edx*4 + 0x194], eax
add edx, 0xffffffff
test edx, edx
jge 0x441a66
mov eax, dword [esp + 0x668]
add eax, 0xffffffff
mov dword [esp + 0x668], eax
je 0x441b6c
mov esi, eax
mov edi, dword [esp + 0x650]
mov dword [esp + 0x598], ebx
mov dword [esp + 0x59c], ebp
mov ebp, edi
test edi, edi
je 0x441e6d
mov eax, esi
shl eax, 2
mov ebx, ebp
shl ebx, 2
lea ecx, [eax + ebp*4]
mov eax, dword [esp + esi*4 + 0x558]
mov edx, dword [esp + ebx + 0x224]
mov dword [esp + 0x600], eax
mov dword [esp + 0x604], edx
mov eax, dword [esp + 0x600]
mul dword [esp + 0x604]
mov dword [esp + 0x60c], eax
mov dword [esp + 0x608], edx
mov eax, dword [esp + ecx + 0x194]
add eax, dword [esp + 0x60c]
cmp eax, dword [esp + 0x60c]
mov edx, dword [esp + ecx + 0x190]
mov dword [esp + ecx + 0x194], eax
mov eax, 0
adc eax, 0
add ebx, 0xfffffffc
add eax, dword [esp + 0x608]
add edx, eax
cmp edx, eax
mov eax, 0
adc eax, 0
mov dword [esp + ecx + 0x190], edx
add dword [esp + ecx + 0x1cc], eax
add ecx, 0xfffffffc
add ebp, 0xffffffff
jne 0x441ac2
add esi, 0xffffffff
jne 0x441aab
mov ebx, dword [esp + 0x598]
mov ebp, dword [esp + 0x59c]
mov eax, dword [esp + 0x5e8]
mov ecx, dword [esp + 0x664]
add dword [esp + 0xb8], ecx
mov ecx, eax
mov dword [esp + 0x668], eax
shl ecx, 2
mov edx, dword [esp + ecx + 0x194]
add eax, 0xffffffff
mov dword [esp + 0x5e8], eax
mov dword [esp + ecx + 0x558], edx
je 0x441bd6
xor edx, edx
add edx, dword [esp + eax*4 + 0x1d4]
mov esi, dword [esp + eax*4 + 0x194]
add esi, edx
cmp esi, edx
mov dword [esp + eax*4 + 0x558], esi
mov edx, 0
adc edx, 0
add eax, 0xffffffff
jne 0x441ba9
mov edx, dword [esp + ecx + 0x558]
test edx, edx
jne 0x441c04
mov eax, dword [esp + 0x5e8]
jmp 0x441be6
add eax, 0xffffffff
mov ecx, eax
shl ecx, 2
mov edx, dword [esp + ecx + 0x558]
test edx, edx
je 0x441be3
mov dword [esp + 0x5e8], eax
mov dword [esp + 0x668], eax
mov eax, dword [esp + 0x66c]
mov eax, dword [eax]
test eax, eax
jle 0x441d11
mov edx, dword [esp + 0x66c]
add dword [esp + 0xb8], 0xffffffff
add eax, eax
mov dword [edx], eax
mov eax, dword [esp + 0x668]
cmp eax, 2
jb 0x441e19
lea edx, [eax - 2]
cmp edx, 5
jb 0x441e0f
mov edx, 2
lea eax, [eax - 5]
mov esi, dword [esp + edx*4 + 0x558]
mov edi, dword [esp + edx*4 + 0x55c]
shr esi, 0x1f
shr edi, 0x1f
or dword [esp + edx*4 + 0x554], esi
mov esi, dword [esp + edx*4 + 0x558]
add esi, esi
or esi, edi
mov edi, dword [esp + edx*4 + 0x55c]
mov dword [esp + edx*4 + 0x558], esi
mov esi, dword [esp + edx*4 + 0x560]
add edi, edi
shr esi, 0x1f
or edi, esi
mov esi, dword [esp + edx*4 + 0x564]
mov dword [esp + edx*4 + 0x55c], edi
mov edi, dword [esp + edx*4 + 0x560]
add edi, edi
shr esi, 0x1f
or edi, esi
mov esi, dword [esp + edx*4 + 0x564]
add esi, esi
mov dword [esp + edx*4 + 0x560], edi
mov dword [esp + edx*4 + 0x564], esi
add edx, 4
cmp edx, eax
jbe 0x441c4c
mov edi, dword [esp + 0x668]
mov eax, dword [esp + edx*4 + 0x558]
mov esi, dword [esp + edx*4 + 0x558]
shr eax, 0x1f
or dword [esp + edx*4 + 0x554], eax
add esi, esi
mov dword [esp + edx*4 + 0x558], esi
add edx, 1
cmp edx, edi
jbe 0x441ccf
mov eax, dword [esp + ecx + 0x558]
mov dword [esp + 0x668], edi
test eax, eax
jne 0x441d11
add dword [esp + 0x668], 0xffffffff
mov eax, dword [esp + 0x668]
cmp eax, 4
jb 0x441e03
mov eax, dword [esp + 0x56c]
mov edx, dword [esp + 0x568]
shr eax, 0x1f
add edx, eax
mov dword [esp + 0x568], edx
cmp edx, eax
jae 0x441dd3
mov eax, dword [esp + 0x564]
mov dword [esp + 0x558], 0
cmp eax, 0xffffffff
je 0x441d68
mov eax, 3
mov dword [esp + 0x668], eax
jmp 0x441d8e
mov eax, 3
mov dword [esp + 0x668], eax
add eax, 0xffffffff
mov edx, dword [esp + eax*4 + 0x558]
cmp edx, 0xffffffff
je 0x441d74
mov dword [esp + 0x668], eax
test eax, eax
je 0x441da6
mov edx, eax
mov eax, dword [esp + edx*4 + 0x558]
add eax, 1
mov dword [esp + edx*4 + 0x558], eax
jmp 0x43f95c
mov eax, dword [esp + 0x66c]
add dword [esp + 0xb8], 1
mov edx, 1
mov dword [eax], 0x80000000
mov eax, dword [esp + 0x55c]
mov dword [esp + 0x668], edx
jmp 0x43f95c
test edx, edx
jne 0x4415f3
mov eax, 4
mov dword [esp + 0x668], eax
mov edx, eax
mov eax, dword [esp + edx*4 + 0x554]
add edx, 0xffffffff
test eax, eax
je 0x441de9
mov dword [esp + 0x668], edx
jmp 0x43f95c
mov eax, dword [esp + eax*4 + 0x558]
jmp 0x43f95c
mov edx, 2
jmp 0x441cc8
mov eax, dword [esp + ecx + 0x558]
jmp 0x441d05
mov eax, 4
mov dword [esp + 0x668], eax
mov eax, dword [esp + 0x568]
jmp 0x4418b9
mov edx, 2
jmp 0x441779
add esi, 0xffffffff
jne 0x4402bf
mov ebx, dword [esp + 0x598]
mov ebp, dword [esp + 0x59c]
jmp 0x441619
mov eax, ecx
shl eax, 2
jmp 0x4401f5
add esi, 0xffffffff
jne 0x441aab
mov ebx, dword [esp + 0x598]
mov ebp, dword [esp + 0x59c]
jmp 0x441b6c
mov eax, 2
mov dword [esp + 0x668], eax
mov eax, dword [esp + 0x560]
jmp 0x4400c4
mov eax, 0x1b
mov dword [esp + 0x668], eax
mov edx, 2
mov dword [esp + 0x484], edx
jmp 0x44005e
xor eax, eax
mov dword [esp + 0x5e8], eax
mov dword [esp + 0x484], eax
jmp 0x44005e
movsx eax, word [0x495b04]
mov edx, dword [0x49598c]
mov esi, dword [0x495988]
mov edi, dword [0x495984]
mov dword [esp + 0xb8], eax
mov eax, dword [0x495980]
lea ecx, [esp + 0x55c]
mov dword [esp + 0x66c], ecx
mov dword [ecx], edx
mov edx, 4
mov dword [esp + 0x560], esi
mov dword [esp + 0x564], edi
mov dword [esp + 0x568], eax
mov dword [esp + 0x668], edx
jmp 0x4418b9
mov eax, 1
mov dword [esp + 0x668], eax
jmp 0x440687
mov dword [esp + 0x654], edi
mov dword [esp + 0x5d4], edx
xor eax, eax
mov dword [esp + 0x150], ecx
mov dword [esp + 0x484], esi
mov dword [esp + 0x5ec], eax
test edi, edi
je 0x4409ee
mov edx, dword [esp + 0x5d4]
mov esi, dword [esp + 0x150]
mov ecx, edi
shr edx, cl
mov ecx, edi
neg ecx
mov dword [esp + 0x5d8], ecx
mov eax, esi
shl eax, cl
mov ecx, edi
shr esi, cl
mov ecx, dword [esp + 0x5d8]
or edx, eax
mov eax, dword [esp + 0x484]
mov dword [esp + 0x5d4], edx
mov edx, eax
shl edx, cl
mov ecx, edi
shr eax, cl
mov ecx, dword [esp + 0x5d8]
or esi, edx
mov dword [esp + 0x150], esi
mov esi, dword [esp + 0x5ec]
mov edx, esi
shl edx, cl
mov ecx, edi
shr esi, cl
mov dword [esp + 0x5ec], esi
or eax, edx
mov dword [esp + 0x484], eax
jmp 0x4409ee
xor eax, eax
mov dword [esp + 0x654], eax
jmp 0x43ec35
mov ebp, dword [esp + 0x59c]
mov dword [esp + 0x660], ebx
mov ebx, dword [esp + 0x598]
mov eax, dword [esp + 0x660]
mov edx, dword [esp + eax*4 + 0x154]
test edx, edx
jne 0x442141
mov esi, eax
add esi, 0xffffffff
lea edx, [esp + esi*4 + 0x154]
mov eax, dword [edx]
mov ecx, esi
shl ecx, 2
test eax, eax
je 0x44201f
mov dword [esp + 0x5e8], ecx
mov dword [esp + 0x660], esi
test eax, eax
jle 0x44213a
xor esi, esi
add eax, eax
add esi, 1
test eax, eax
jg 0x44204c
mov dword [edx], eax
mov edx, dword [esp + 0x660]
shl edx, 5
sub edx, esi
mov dword [esp + 0x654], edx
test esi, esi
je 0x4420d4
mov edx, dword [esp + 0x660]
mov dword [esp + 0x49c], eax
add edx, 0xffffffff
je 0x442103
mov dword [esp + 0x598], ebx
mov eax, esi
mov dword [esp + 0x59c], ebp
neg eax
mov ebx, dword [esp + 0x660]
mov edi, dword [esp + edx*4 + 0x154]
sub ebx, edx
mov ecx, eax
mov ebp, edi
shr ebp, cl
or dword [esp + ebx*4 + 0x498], ebp
mov ecx, esi
shl edi, cl
mov dword [esp + ebx*4 + 0x49c], edi
add edx, 0xffffffff
jne 0x442097
mov ebx, dword [esp + 0x598]
mov ebp, dword [esp + 0x59c]
jmp 0x442103
mov edx, dword [esp + 0x660]
test edx, edx
je 0x442103
mov eax, edx
shl eax, 2
neg eax
add eax, dword [esp + 0x5e8]
mov ecx, dword [esp + edx*4 + 0x154]
mov dword [esp + eax + 0x49c], ecx
add eax, 4
add edx, 0xffffffff
jne 0x4420ed
mov eax, dword [esp + 0x5e8]
mov edx, dword [esp + eax + 0x498]
test edx, edx
jne 0x43ec5b
mov eax, dword [esp + 0x660]
mov edx, dword [esp + eax*4 + 0x494]
add eax, 0xffffffff
test edx, edx
je 0x442120
mov dword [esp + 0x660], eax
jmp 0x43ec5b
xor esi, esi
jmp 0x442057
mov edx, eax
mov eax, edx
lea edx, [esp + edx*4 + 0x154]
shl eax, 2
mov dword [esp + 0x5e8], eax
mov eax, dword [edx]
jmp 0x442042
mov dword [esp + 0x158], edx
jmp 0x442007
mov ebx, 0x6000000
xor eax, eax
mov dword [esp + 0x658], eax
jmp 0x440a3c