Function at 0x100ac864
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 0x100ac725
mov eax, ebx
test eax, 0x10000
je 0x100ac717
lea eax, [esp + 0x6af]
and eax, 0xfffffffc
movsx edx, byte [eax]
mov dword [esp + 0x650], edx
jmp 0x100ac731
mov eax, 0x2c
mov dword [esp + 0x650], eax
jmp 0x100ac731
mov eax, 0x2e
mov dword [esp + 0x650], eax
test esi, esi
jle 0x100b05e9
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 0x100ac7b3
movsx eax, byte [ebp]
cmp eax, 9
jl 0x100ac7b3
cmp eax, 0xd
jle 0x100ac7ab
cmp eax, 0x20
jne 0x100ac7b3
add ebp, 1
add esi, 0xffffffff
jne 0x100ac798
mov dword [esp + 0x5d4], ebp
test esi, esi
je 0x100acc73
movsx eax, byte [ebp]
cmp eax, 0x2d
jne 0x100ac7d0
or ebx, 8
jmp 0x100ac7d5
cmp eax, 0x2b
jne 0x100ac7e4
or ebx, 2
add ebp, 1
add esi, 0xffffffff
je 0x100acc73
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.0x100ac84d.10
mov edx, dword [edx*4 + 0x100c5580]
jmp edx
mov edx, dword [esp + 0x5e0]
test dl, 0x10
jne 0x100acc55
jmp case.0x100ac84d.10
mov edx, dword [esp + 0x5e0]
test edx, 0x100
je case.0x100ac84d.10
test ebx, 0x200
jne case.0x100ac84d.10
mov edx, dword [esp + 0x670]
test edx, edx
jne case.0x100ac84d.10
mov edx, dword [esp + 0x658]
cmp edx, 1
jne case.0x100ac84d.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 0x100acc55
mov ecx, dword [esp + 0x5e0]
mov edx, ebx
and edx, 0x200
and ecx, 0x1000
or edx, ecx
jne case.0x100ac84d.10
jmp 0x100af12b
test ebx, 0x200
je case.0x100ac84d.10
jmp 0x100af259
test ebx, 0x800
je case.0x100ac84d.10
mov edx, dword [esp + 0x658]
or edx, dword [esp + 0x670]
mov ecx, ebx
and ecx, 0x201
or edx, ecx
jne case.0x100ac84d.10
mov ecx, dword [esp + 0x664]
mov dword [esp + 0xb8], ebp
mov edx, 0x100dc00c
test ecx, ecx
je 0x100af4c5
mov dword [esp + 0x484], edi
mov dword [esp + 0x150], esi
mov esi, ecx
movsx ecx, byte [edx]
test ecx, ecx
je 0x100af26c
movsx ecx, byte [ebp]
mov edi, edx
movsx edi, byte [edi]
add edx, 1
or ecx, 0x20
or edi, 0x20
cmp ecx, edi
jne 0x100af41f
add ebp, 1
add esi, 0xffffffff
jne 0x100ac95c
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 0x100af265
mov ebp, dword [esp + 0xb8]
sub edx, ebp
mov dword [esp + 0x664], edx
jmp case.0x100ac84d.10
test ebx, 0x800
je case.0x100ac84d.10
mov edx, dword [esp + 0x658]
or edx, dword [esp + 0x670]
mov ecx, ebx
and ecx, 0x201
or edx, ecx
jne case.0x100ac84d.10
mov ecx, dword [esp + 0x664]
mov dword [esp + 0xbc], ebp
mov edx, section._RDATA
test ecx, ecx
je 0x100af46d
mov dword [esp + 0x484], edi
mov edi, ecx
mov dword [esp + 0x150], esi
movsx esi, byte [edx]
test esi, esi
je 0x100af453
movsx ecx, byte [ebp]
or ecx, 0x20
or esi, 0x20
cmp ecx, esi
jne 0x100af439
add edx, 1
add ebp, 1
add edi, 0xffffffff
jne 0x100aca1a
mov esi, dword [esp + 0x150]
movsx ecx, byte [edx]
mov dword [esp + 0x664], edi
mov edi, dword [esp + 0x484]
test ecx, ecx
jne 0x100acafe
mov dword [esp + 0x5d4], ebp
test bl, 8
je 0x100aca7c
mov edx, 0x100c5f30
mov dword [esp + 0xbc], edx
jmp 0x100aca88
mov edx, 0x100c5f20
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 0x100acac7
or ebx, 0xc000000
test dl, 2
je case.0x100ac84d.10
mov edx, dword [esp + 0x664]
test edx, edx
je case.0x100ac84d.10
mov ecx, edx
movsx edx, byte [ebp]
cmp edx, 0x20
jne 0x100acaf2
add ebp, 1
add ecx, 0xffffffff
jne 0x100acae1
mov dword [esp + 0x664], ecx
jmp case.0x100ac84d.10
movsx ecx, byte [edx - 1]
cmp ecx, 0x66
je 0x100aca62
mov ebp, dword [esp + 0xbc]
sub edx, ebp
mov dword [esp + 0x664], edx
jmp case.0x100ac84d.10
test ebx, 0x200
jne 0x100acb59
jmp 0x100af475
test ebx, 0x200
jne 0x100acb59
mov edx, dword [esp + 0x5e0]
test edx, 0x1000
jne case.0x100ac84d.10
jmp 0x100af475
test ebx, 0x200
je case.0x100ac84d.10
or esi, 0x20
add esi, 0xffffffa9
jmp 0x100acb64
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 0x100af481
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 0x100acc55
mov edx, dword [esp + 0x670]
test edx, edx
jne case.0x100ac84d.49
mov edx, ebx
and edx, 1
add edi, edx
xor edx, 1
or ebx, 4
add dword [esp + 0x658], edx
jmp 0x100acc55
mov edx, dword [esp + 0x5e0]
test dl, 8
jne 0x100acc55
jmp case.0x100ac84d.10
mov edx, dword [esp + 0x5e0]
test dl, 4
jne 0x100acc55
jmp case.0x100ac84d.10
mov edx, dword [esp + 0x5e0]
test edx, 0x800
jne case.0x100ac84d.10
jmp 0x100af4d4
mov edx, dword [esp + 0x5e0]
test dl, 2
jne 0x100acc55
jmp 0x100af4e6
mov edx, dword [esp + 0x5e0]
test dl, 1
jne 0x100acc55
mov edx, dword [esp + 0x650]
cmp esi, edx
jne 0x100af515
test bl, 1
jne 0x100af4f9
or ebx, 1
xor edi, edi
mov edx, dword [esp + 0x664]
add ebp, 1
add edx, 0xffffffff
mov dword [esp + 0x664], edx
jne 0x100ac836
mov esi, edx
jmp 0x100acc93
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 0x100accb6
mov ecx, dword [esp + 0x5d4]
mov dword [esp + 0x658], ecx
test bl, 0x40
je 0x100accc2
mov dword [esp + 0x658], ebp
mov ecx, dword [esp + 0x5e0]
test ecx, 0x8000
je 0x100accf9
mov ecx, dword [esp + 0x5d0]
test ecx, ecx
je 0x100accea
movsx ecx, byte [ebp]
test ecx, ecx
je 0x100accf9
test esi, esi
jne 0x100accee
jmp 0x100accf9
test esi, esi
je 0x100accf9
or ebx, 0x3000000
jmp 0x100aeebc
mov ecx, dword [esp + 0x670]
test ecx, ecx
jne 0x100acd3b
mov eax, ebx
and eax, 0xc
cmp eax, 0xc
jne 0x100acd19
xor dword [esp + 0x5bc], 0x80000000
mov eax, dword [esp + 0x5e0]
and eax, 0x28000
cmp eax, 0x28000
jne 0x100aeebc
or ebx, 0x3000000
jmp 0x100aeebc
test bl, 0x10
je 0x100acd94
cmp edx, 6
jbe 0x100acd56
mov eax, ebx
and eax, 8
mov dword [esp + 0x5e8], eax
jmp 0x100aeca0
test ebx, 0x80
je 0x100acd6e
mov edx, dword [esp + 0x668]
neg edx
mov dword [esp + 0x668], edx
mov edx, dword [esp + 0x5e0]
test edx, 0x400
je 0x100acda4
mov edx, dword [esp + 0x668]
sub edx, dword [esp + 0x5e8]
mov dword [esp + 0x668], edx
jmp 0x100acda4
mov edx, dword [esp + 0x5e8]
neg edx
mov dword [esp + 0x668], edx
test ebx, 0x200
je 0x100acfe3
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 0x100acde2
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 0x100ace42
test eax, eax
jle 0x100af51e
mov edx, eax
xor eax, eax
add edx, edx
add eax, 1
test edx, edx
jg 0x100ace13
mov dword [esp + 0x674], edx
mov edx, dword [esp + 0x674]
mov dword [esp + 0x49c], edx
mov esi, 1
mov dword [esp + 0x660], esi
jmp 0x100acfce
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 0x100ace74
add eax, 0xffffffff
mov edx, dword [esp + eax*4 + 0x78]
test edx, edx
je 0x100ace62
mov dword [esp + 0x660], eax
mov edx, dword [esp + 0x7c]
test edx, edx
jle 0x100af536
xor eax, eax
add edx, edx
add eax, 1
test edx, edx
jg 0x100ace82
mov dword [esp + 0x7c], edx
test eax, eax
je 0x100acfb3
mov dword [esp + 0x49c], edx
mov edx, dword [esp + 0x660]
cmp edx, 1
jbe 0x100acfce
lea esi, [edx - 1]
cmp esi, 5
jb 0x100af525
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 0x100acede
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 0x100acf79
mov ebx, dword [esp + 0x598]
mov ebp, dword [esp + 0x59c]
mov dword [esp + 0x660], edi
jmp 0x100acfce
mov edx, dword [esp + 0x660]
test edx, edx
je 0x100acfce
mov esi, dword [esp + edx*4 + 0x78]
mov dword [esp + edx*4 + 0x498], esi
add edx, 0xffffffff
jne 0x100acfbe
mov edx, dword [esp + 0x654]
sub edx, eax
mov dword [esp + 0x654], edx
jmp 0x100ae7f7
test bl, 1
je 0x100acffa
mov edx, dword [esp + 0x668]
sub edx, edi
mov dword [esp + 0x668], edx
jmp 0x100ad00f
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 0x100ad034
mov eax, ebx
and eax, 8
mov dword [esp + 0x5e8], eax
jmp 0x100aeca0
cmp edx, 0x1345
jle 0x100ad04d
mov eax, ebx
and eax, 8
mov dword [esp + 0x5e8], eax
jmp 0x100aeca0
mov edx, dword [esp + 0x670]
lea ecx, [edx - 0x36]
test ecx, ecx
jle 0x100ad074
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 0x100aefc8
mov eax, dword [esp + 0x674]
test eax, eax
jle 0x100b0464
mov edx, eax
xor eax, eax
mov dword [esp + 0x654], eax
add edx, edx
add eax, 1
test edx, edx
jg 0x100ad09e
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 0x100ae7f7
mov eax, dword [esp + 0x660]
cmp eax, 4
jb 0x100ad1e2
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 0x100ad1a9
mov eax, dword [esp + 0x4a4]
mov dword [esp + 0x498], 0
cmp eax, 0xffffffff
je 0x100ad141
mov eax, 3
mov dword [esp + 0x660], eax
jmp 0x100ad167
mov eax, 3
mov dword [esp + 0x660], eax
add eax, 0xffffffff
mov edx, dword [esp + eax*4 + 0x498]
cmp edx, 0xffffffff
je 0x100ad14d
mov dword [esp + 0x660], eax
test eax, eax
je 0x100ad17f
add dword [esp + eax*4 + 0x498], 1
lea edx, [esp + 0x49c]
mov dword [esp + 0xbc], edx
jmp 0x100ad1f0
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 0x100ad1f0
test edx, edx
jne 0x100af53d
mov eax, 4
mov dword [esp + 0x660], eax
add eax, 0xffffffff
mov edx, dword [esp + eax*4 + 0x498]
test edx, edx
je 0x100ad1bd
mov dword [esp + 0x660], eax
lea eax, [esp + 0x49c]
mov dword [esp + 0xbc], eax
jmp 0x100ad1f0
lea eax, [esp + 0x49c]
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0x668]
cmp eax, 0xfffffdea
jge 0x100ad794
cmp eax, 0xfffff000
jle 0x100ad243
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 0x100ad748
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 0x100ad702
movsx edx, word [esi*2 + 0x100c6b20]
mov dword [esp + 0x664], edx
mov edi, esi
shl edi, 4
lea edx, [ebp + 4]
mov eax, dword [edi + 0x100c680c]
mov dword [esp + 0x228], eax
mov eax, dword [edi + 0x100c6808]
mov dword [esp + 0x22c], eax
mov eax, dword [edi + 0x100c6804]
mov dword [esp + 0x230], eax
mov eax, dword [edi + 0x100c6800]
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 0x100ad32d
mov ecx, dword [esp + 0x66c]
mov dword [esp + edi*4 + 0x2a4], 0
add edi, 0xffffffff
test edi, edi
jl 0x100ad42f
cmp edi, 6
jl 0x100ad418
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 0x100ad3c8
xor eax, eax
mov dword [esp + edi*4 + 0x2a4], eax
mov dword [esp + edi*4 + 0x264], eax
add edi, 0xffffffff
test edi, edi
jge 0x100ad418
add ebp, 0xffffffff
je 0x100ad4fd
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 0x100ad453
add edi, 0xfffffffc
add ebp, 0xffffffff
jne 0x100ad44b
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 0x100ad55f
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 0x100ad52b
mov eax, dword [esp + 0x650]
mov edx, dword [esp + eax*4 + 0x2e4]
test edx, edx
jne 0x100ad571
add ebp, 0xffffffff
mov eax, dword [esp + ebp*4 + 0x2e4]
test eax, eax
je 0x100ad563
mov eax, dword [esp + 0x2e8]
test eax, eax
jle 0x100ad65b
add eax, eax
mov dword [esp + 0x2e8], eax
add ebx, 0xffffffff
cmp ebp, 2
jb 0x100ad65b
lea eax, [ebp - 2]
cmp eax, 5
jb 0x100af566
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 0x100ad5b0
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 0x100ad633
mov eax, dword [esp + ebp*4 + 0x2e4]
test eax, eax
jne 0x100ad669
add ebp, 0xffffffff
cmp ebp, 4
jb 0x100ad748
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 0x100ad6e5
mov eax, dword [esp + 0x2f0]
mov dword [esp + 0x2e4], 0
cmp eax, 0xffffffff
je 0x100ad6ae
mov ebp, 3
jmp 0x100ad6c6
mov ebp, 3
add ebp, 0xffffffff
mov eax, dword [esp + ebp*4 + 0x2e4]
cmp eax, 0xffffffff
je 0x100ad6b3
test ebp, ebp
je 0x100ad6d0
add dword [esp + ebp*4 + 0x2e4], 1
jmp 0x100ad748
mov dword [esp + 0x2e8], 0x80000000
add ebx, 1
mov ebp, 1
jmp 0x100ad748
test edx, edx
jne 0x100af55c
mov ebp, 4
add ebp, 0xffffffff
mov eax, dword [esp + ebp*4 + 0x2e4]
test eax, eax
je 0x100ad6f2
jmp 0x100ad748
movsx ebx, word [esi*2 + 0x100c6b20]
mov edi, esi
shl edi, 4
mov eax, dword [edi + 0x100c680c]
mov edx, dword [edi + 0x100c6808]
mov ebp, dword [edi + 0x100c6804]
mov dword [esp + 0x2e8], eax
mov eax, dword [edi + 0x100c6800]
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 0x100ad76c
mov eax, ecx
neg eax
cmp edx, eax
jg 0x100ad74f
mov dword [esp + 0x668], edx
jmp 0x100ad278
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 0x100add4a
cmp eax, 0x216
jle 0x100add33
cmp eax, 0x1000
jge 0x100ad7e0
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 0x100adcee
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 0x100adca8
movsx edx, word [esi*2 + 0x100c6b3c]
mov dword [esp + 0x664], edx
mov edi, esi
shl edi, 4
lea edx, [ebp + 4]
mov eax, dword [edi + 0x100c698c]
mov dword [esp + 0x228], eax
mov eax, dword [edi + 0x100c6988]
mov dword [esp + 0x22c], eax
mov eax, dword [edi + 0x100c6984]
mov dword [esp + 0x230], eax
mov eax, dword [edi + 0x100c6980]
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 0x100ad8d3
mov ecx, dword [esp + 0xb8]
mov dword [esp + edi*4 + 0x100], 0
add edi, 0xffffffff
test edi, edi
jl 0x100ad9d5
cmp edi, 6
jl 0x100ad9be
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 0x100ad96e
xor eax, eax
mov dword [esp + edi*4 + 0x100], eax
mov dword [esp + edi*4 + 0xc0], eax
add edi, 0xffffffff
test edi, edi
jge 0x100ad9be
add ebp, 0xffffffff
je 0x100adaa3
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 0x100ad9f9
add edi, 0xfffffffc
add ebp, 0xffffffff
jne 0x100ad9f1
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 0x100adb05
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 0x100adad1
mov eax, dword [esp + 0x650]
mov edx, dword [esp + eax*4 + 0x2e4]
test edx, edx
jne 0x100adb17
add ebp, 0xffffffff
mov eax, dword [esp + ebp*4 + 0x2e4]
test eax, eax
je 0x100adb09
mov eax, dword [esp + 0x2e8]
test eax, eax
jle 0x100adc01
add eax, eax
mov dword [esp + 0x2e8], eax
add ebx, 0xffffffff
cmp ebp, 2
jb 0x100adc01
lea eax, [ebp - 2]
cmp eax, 5
jb 0x100af57a
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 0x100adb56
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 0x100adbd9
mov eax, dword [esp + ebp*4 + 0x2e4]
test eax, eax
jne 0x100adc0f
add ebp, 0xffffffff
cmp ebp, 4
jb 0x100adcee
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 0x100adc8b
mov eax, dword [esp + 0x2f0]
mov dword [esp + 0x2e4], 0
cmp eax, 0xffffffff
je 0x100adc54
mov ebp, 3
jmp 0x100adc6c
mov ebp, 3
add ebp, 0xffffffff
mov eax, dword [esp + ebp*4 + 0x2e4]
cmp eax, 0xffffffff
je 0x100adc59
test ebp, ebp
je 0x100adc76
add dword [esp + ebp*4 + 0x2e4], 1
jmp 0x100adcee
mov dword [esp + 0x2e8], 0x80000000
add ebx, 1
mov ebp, 1
jmp 0x100adcee
test edx, edx
jne 0x100af570
mov ebp, 4
add ebp, 0xffffffff
mov eax, dword [esp + ebp*4 + 0x2e4]
test eax, eax
je 0x100adc98
jmp 0x100adcee
movsx ebx, word [esi*2 + 0x100c6b3c]
mov edi, esi
shl edi, 4
mov eax, dword [edi + 0x100c698c]
mov edx, dword [edi + 0x100c6988]
mov ebp, dword [edi + 0x100c6984]
mov dword [esp + 0x2e8], eax
mov eax, dword [edi + 0x100c6980]
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 0x100add0e
cmp eax, ecx
jl 0x100adcf5
mov dword [esp + 0x668], eax
jmp 0x100ad815
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 0x100add4a
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 0x100ae3d7
test eax, eax
jge 0x100ae326
movsx edx, word [eax*2 + 0x100c6b1e]
mov dword [esp + 0xb8], edx
lea esi, [esp + 0x55c]
mov dword [esp + 0x66c], esi
shl eax, 4
mov ecx, dword [eax + 0x100c67fc]
mov edi, dword [eax + 0x100c67f8]
mov edx, dword [eax + 0x100c67f4]
mov eax, dword [eax + 0x100c67f0]
mov dword [esp + 0x560], edi
mov dword [esi], ecx
mov dword [esp + 0x564], edx
test eax, eax
mov dword [esp + 0x568], eax
jne 0x100afa73
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 0x100addc7
mov dword [esp + 0x668], edx
mov edx, dword [esp + 0x674]
test edx, edx
je 0x100ae086
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 0x100adf04
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 0x100ade70
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 0x100adfa0
cmp eax, 6
jl 0x100adf82
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 0x100adf2b
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 0x100adf89
mov eax, dword [esp + 0x668]
add eax, 0xffffffff
mov dword [esp + 0x668], eax
je 0x100af592
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 0x100af868
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 0x100adfe5
add esi, 0xffffffff
jne 0x100adfce
jmp 0x100af584
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 0x100ae1a4
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 0x100ae110
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 0x100ae240
cmp eax, 6
jl 0x100ae222
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 0x100ae1cb
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 0x100ae229
mov eax, dword [esp + 0x660]
add eax, 0xffffffff
mov dword [esp + 0x660], eax
je 0x100af892
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 0x100afa57
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 0x100ae285
add edi, 0xffffffff
jne 0x100ae26e
jmp 0x100af884
test eax, eax
jl 0x100ae3d7
cmp eax, 0x37
jl 0x100ae3c9
mov edx, eax
mov ecx, edx
sar ecx, 3
lea esi, [ecx + ecx]
movzx eax, word [esi + 0x100c6a62]
shr eax, 5
cmp eax, edx
jg 0x100ae353
lea esi, [ecx + ecx + 2]
movzx edx, word [esi + 0x100c6a60]
mov ecx, dword [esp + 0x668]
mov eax, edx
and eax, 0x1f
shr edx, 5
sub ecx, edx
movsx esi, word [eax*2 + 0x100c6b44]
mov dword [esp + 0x668], ecx
mov dword [esp + 0x664], esi
shl eax, 4
mov edi, dword [eax + 0x100c69cc]
mov edx, dword [eax + 0x100c69c8]
mov dword [esp + 0x228], edi
mov dword [esp + 0x22c], edx
mov edx, dword [eax + 0x100c69c4]
mov eax, dword [eax + 0x100c69c0]
mov dword [esp + 0x230], edx
mov dword [esp + 0x234], eax
mov eax, 4
mov dword [esp + 0x650], eax
jmp 0x100ae45a
xor eax, eax
mov dword [esp + 0x650], eax
jmp 0x100ae45a
mov edx, eax
neg edx
mov ecx, edx
sar ecx, 3
movzx eax, word [ecx*2 + 0x100c68e0]
mov esi, eax
shr esi, 5
cmp esi, edx
jge 0x100ae3fe
movzx eax, word [ecx*2 + 0x100c68e2]
mov esi, eax
shr esi, 5
add dword [esp + 0x668], esi
and eax, 0x1f
movsx edx, word [eax*2 + 0x100c6b28]
mov dword [esp + 0x664], edx
shl eax, 4
mov ecx, dword [eax + 0x100c684c]
mov esi, dword [eax + 0x100c6848]
mov edi, dword [eax + 0x100c6844]
mov eax, dword [eax + 0x100c6840]
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 0x100b0353
lea edx, [eax - 0x1b]
mov dword [esp + 0x150], edx
test edx, edx
jle 0x100b033e
mov ecx, edx
movsx eax, word [ecx*2 + 0x100c5bfe]
mov edx, dword [ecx*8 + 0x100c5a1c]
mov esi, dword [ecx*8 + 0x100c5a18]
mov dword [esp + 0x5e8], eax
test esi, esi
mov dword [esp + 0x3c8], edx
mov dword [esp + 0x3cc], esi
jne 0x100b0321
mov eax, 2
mov dword [esp + 0x484], eax
add eax, 0xffffffff
mov edx, dword [esp + eax*4 + 0x3c4]
test edx, edx
je 0x100ae4bd
mov dword [esp + 0x484], eax
mov eax, 0x1b
mov dword [esp + 0x668], eax
mov esi, dword [esp + 0x668]
movsx eax, word [esi*2 + 0x100c5bfe]
mov edx, dword [esi*8 + 0x100c5a1c]
mov edi, dword [esi*8 + 0x100c5a18]
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 0x100b0309
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 0x100ae52f
mov dword [esp + 0x668], edx
mov edx, dword [esp + 0x150]
test edx, edx
jle 0x100afd39
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 0x100b02e3
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 0x100ae5e1
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 0x100ae711
cmp eax, 6
jl 0x100ae6f3
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 0x100ae69c
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 0x100ae6fa
mov eax, dword [esp + 0x668]
add eax, 0xffffffff
mov dword [esp + 0x668], eax
je 0x100afa99
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 0x100b02c7
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 0x100ae756
add esi, 0xffffffff
jne 0x100ae73f
jmp 0x100afa8b
mov eax, dword [esp + 0x5e0]
mov edx, dword [esp + 0x5d0]
shr eax, 0x16
and eax, 7
or edx, eax
jne 0x100ae814
mov eax, 6
test al, 4
je 0x100ae838
test al, 2
je 0x100ae82a
mov edx, 0xaaaa
mov dword [esp + 0x650], edx
jmp 0x100ae865
mov edx, 0xfa
mov dword [esp + 0x650], edx
jmp 0x100ae865
test al, 2
je 0x100ae84a
mov edx, 0xfa00
mov dword [esp + 0x650], edx
jmp 0x100ae865
test al, 1
je 0x100ae859
xor edx, edx
mov dword [esp + 0x650], edx
jmp 0x100ae865
mov edx, 0xa8a8
mov dword [esp + 0x650], edx
cmp eax, 2
je 0x100ae86f
cmp eax, 4
jne 0x100ae876
mov eax, 1
jmp 0x100ae878
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 0x100ae8ab
mov esi, 0x71
jmp 0x100ae8b3
test esi, esi
jl 0x100aeca0
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 0x100ae8ed
test eax, eax
je 0x100aec6e
mov eax, edx
mov edx, edi
mov dword [esp + 0x674], eax
test edx, edx
mov dword [esp + 0x660], edx
je 0x100aebd3
mov eax, edi
mov edx, dword [esp + eax*4 + 0x498]
mov edi, dword [esp + 0x670]
mov dword [esp + 0x150], edx
test edi, edi
je 0x100aea18
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 0x100aeb07
mov edx, dword [esp + 0x670]
mov eax, dword [esp + 0x66c]
mov ecx, dword [esp + 0x674]
lea eax, [eax + edx + 1]
cmp eax, ecx
ja 0x100aeb07
mov edx, ecx
sub edx, eax
cmp edx, 6
jb 0x100ae9f0
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 0x100ae9bf
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 0x100ae9fe
mov dword [esp + 0x65c], edx
jmp 0x100aeb07
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 0x100aeafb
mov edx, dword [esp + 0x670]
mov eax, edi
mov ecx, dword [esp + 0x674]
lea eax, [eax + edx + 2]
cmp eax, ecx
ja 0x100b03ae
mov edx, ecx
sub edx, eax
cmp edx, 6
jb 0x100aeaca
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 0x100aea99
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 0x100aead8
mov dword [esp + 0x65c], edx
mov eax, 1
mov dword [esp + 0x668], eax
jmp 0x100aeb07
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 0x100aec6e
mov eax, dword [esp + 0x150]
mov edx, dword [esp + 0x668]
add eax, edx
mov dword [esp + 0x150], eax
cmp eax, edx
jae 0x100aec00
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 0x100aebc8
mov ecx, dword [esp + 0x660]
add ecx, 0xffffffff
mov edx, ecx
shl edx, 2
mov eax, dword [esp + edx + 0x498]
cmp eax, 0xffffffff
je 0x100aebad
mov dword [esp + 0x660], ecx
mov ecx, dword [esp + 0x660]
test ecx, ecx
jne 0x100aebf4
add dword [esp + 0x654], 1
mov eax, 1
mov dword [esp + 0x660], eax
mov dword [esp + 0x49c], 0x80000000
jmp 0x100aec6e
add eax, 1
mov dword [esp + edx + 0x498], eax
jmp 0x100aec6e
mov eax, dword [esp + 0x670]
test eax, eax
je 0x100aec32
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 0x100aec47
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 0x100aec6e
mov eax, dword [esp + 0x660]
mov edx, dword [esp + eax*4 + 0x494]
add eax, 0xffffffff
test edx, edx
je 0x100aec59
mov dword [esp + 0x660], eax
mov eax, dword [esp + 0x654]
cmp eax, 0x4000
jg 0x100aeca0
cmp eax, 0xffffc002
jg 0x100aed79
cmp eax, 0xffffbf93
jl 0x100aeca0
mov eax, dword [esp + 0x5e0]
test eax, 0x10000000
je 0x100aed60
test ebx, 0x80
je 0x100aed04
mov eax, dword [esp + 0x5e8]
test eax, eax
je 0x100aecba
mov esi, 0x100c5ef0
jmp 0x100aecbf
mov esi, 0x100c5ee0
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 0x100aeebc
or ebx, 0x9000000
jmp 0x100aeebc
mov eax, dword [esp + 0x5e8]
test eax, eax
je 0x100aed16
mov esi, 0x100c5f30
jmp 0x100aed1b
mov esi, 0x100c5f20
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 0x100aeebc
or ebx, 0x8000000
jmp 0x100aeebc
test eax, 0x4000
je 0x100aed79
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 0x100aed9e
xor eax, eax
mov dword [esp + 0x484], eax
jmp 0x100aedac
mov eax, dword [esp + 0x4a0]
mov dword [esp + 0x484], eax
mov eax, edx
cmp eax, 3
jae 0x100aedbe
xor eax, eax
mov dword [esp + 0x150], eax
jmp 0x100aedcc
mov eax, dword [esp + 0x4a4]
mov dword [esp + 0x150], eax
mov eax, edx
cmp eax, 4
jae 0x100aedde
xor eax, eax
mov dword [esp + 0x5d4], eax
jmp 0x100aedec
mov eax, dword [esp + 0x4a8]
mov dword [esp + 0x5d4], eax
mov eax, dword [esp + 0x654]
cmp eax, 0xffffc002
jle 0x100aef38
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 0x100aee84
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 0x100aeeec
mov eax, dword [esp + 0x5e0]
test eax, 0x40000
jne 0x100aeedc
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 0x100aeefc
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 0x100b03e4
add eax, 0x60
mov dword [esp + 0x654], eax
cmp eax, 0xc0
jl 0x100aef95
add edi, 0xffffff60
cmp edi, 0xe0
jge 0x100aef66
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 0x100aefb8
xor eax, eax
add edi, 0xffffffe0
mov edx, ecx
mov ecx, esi
mov esi, eax
cmp edi, 0x20
jge 0x100aefb3
jmp 0x100b03bf
mov ecx, dword [esp + 0x660]
mov edx, dword [esp + 0x674]
mov esi, dword [0x100c5f64]
add ecx, 1
cmp ecx, 2
mov dword [esp + 0x660], ecx
mov dword [esp + ecx*4 + 0x78], edx
mov edx, dword [esp + 0x7c]
jb 0x100b05dd
mov dword [esp + 0x598], ebx
mov ebx, ecx
mov dword [esp + 0x59c], ebp
mov ecx, 2
jmp 0x100af015
mov edx, dword [esp + 0x158]
cmp ecx, ebx
jne 0x100af020
mov esi, dword [eax*4 + 0x100c5f40]
xor edi, edi
lea ebp, [ecx - 1]
test ebp, ebp
jle 0x100af0bc
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 0x100af044
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 0x100af11b
mov dword [esp + ecx*4 + 0x158], 0
mov edx, dword [esp + 0x15c]
cmp edx, 0xffffffff
je 0x100af0f2
mov edx, dword [esp + 0x15c]
mov ebp, 2
jmp 0x100af111
mov ebp, 2
mov dword [esp + ebp*4 + 0x154], 0
mov edx, dword [esp + ebp*4 + 0x158]
add ebp, 1
cmp edx, 0xffffffff
je 0x100af0f7
add edx, 1
mov dword [esp + ebp*4 + 0x154], edx
add ecx, 1
cmp ecx, ebx
jbe 0x100af00e
jmp 0x100b0472
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.0x100af17a
movsx eax, byte [ebp]
or ebx, 0x10
lea edi, [eax - 9]
cmp edi, 0x56
ja case.default.0x100af17a
mov edi, dword [edi*4 + 0x100c5740]
jmp edi
mov eax, dword [esp + 0x5e0]
test al, 0x10
jne 0x100af20c
jmp case.default.0x100af17a
lea ecx, [ecx + ecx*4]
or ebx, 0x40
lea ecx, [eax + ecx*2]
add ecx, 0xffffffd0
add edx, 1
jmp 0x100af20c
test edx, edx
jne case.0x100af17a.49
or ebx, 0x40
jmp 0x100af20c
mov eax, dword [esp + 0x5e0]
test al, 8
jne 0x100af20c
jmp case.default.0x100af17a
or ebx, 0x80
jmp case.0x100af17a.43
mov eax, dword [esp + 0x5e0]
test al, 4
jne 0x100af20c
jmp case.default.0x100af17a
mov eax, ebx
and eax, 0x20
or eax, edx
jne 0x100af231
or ebx, 0x20
jmp 0x100af20c
mov eax, dword [esp + 0x5e0]
test al, 2
jne 0x100af20c
jmp 0x100af24b
mov eax, dword [esp + 0x5d8]
mov edi, dword [esp + 0x484]
mov dword [esp + 0x668], ecx
jmp 0x100acca3
mov eax, dword [esp + 0x5e0]
test al, 1
je case.default.0x100af17a
add esi, 0xffffffff
add ebp, 1
jmp 0x100af158
mov eax, dword [esp + 0x5d8]
mov edi, dword [esp + 0x484]
mov dword [esp + 0x668], ecx
jmp 0x100acca3
mov eax, dword [esp + 0x5d8]
mov edi, dword [esp + 0x484]
mov dword [esp + 0x668], ecx
jmp 0x100acca3
test al, 0x40
je case.default.0x100af17a
mov eax, 0x30
jmp case.0x100af17a.48
mov esi, dword [esp + 0x664]
jmp 0x100af132
mov esi, dword [esp + 0x664]
mov eax, ebx
and eax, 0x1800
mov dword [esp + 0x484], eax
cmp eax, 0x800
jne 0x100af2b9
mov eax, dword [0x100c5f10]
mov edx, dword [0x100c5f14]
mov ecx, dword [0x100c5f18]
mov edi, dword [0x100c5f1c]
mov dword [esp + 0x5b0], eax
mov dword [esp + 0x5b4], edx
mov dword [esp + 0x5b8], ecx
mov dword [esp + 0x5bc], edi
jmp 0x100af34b
lea eax, [esp]
push ebp
push eax
call fcn.100b4964
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 0x100af2fd
mov dword [esp + 0x5bc], eax
jmp 0x100af334
mov eax, dword [0x100c5f10]
mov edx, dword [0x100c5f14]
mov ecx, dword [0x100c5f18]
mov esi, dword [0x100c5f1c]
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 0x100af34b
test bl, 8
jne 0x100af34b
and dword [esp + 0x5bc], 0x7fffffff
mov eax, dword [esp + 0x5e0]
test al, 2
je 0x100af36b
test esi, esi
je 0x100af36b
movsx eax, byte [ebp]
cmp eax, 0x20
jne 0x100af36b
add ebp, 1
add esi, 0xffffffff
jne 0x100af35a
mov eax, dword [esp + 0x484]
cmp eax, 0x800
jne 0x100af393
test esi, esi
je 0x100af3af
mov eax, dword [esp + 0x5e0]
test eax, 0x8000
je 0x100af3af
or ebx, 0x3000000
jmp 0x100af3af
movsx eax, byte [ebp]
test eax, eax
je 0x100af3af
mov eax, dword [esp + 0x5e0]
test eax, 0x8000
je 0x100af3af
or ebx, 0x3000000
mov eax, dword [esp + 0x5e0]
and ebx, 0xfffffff7
test eax, 0x40000000
je 0x100af3c6
or ebx, 0xa000000
mov eax, dword [esp + 0x5dc]
test eax, eax
je 0x100af3d3
mov dword [eax], ebp
mov eax, dword [esp + 0x6a8]
test eax, eax
je 0x100af3e3
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.0x100ac84d.10
mov esi, dword [esp + 0x150]
mov dword [esp + 0x664], edi
mov edi, dword [esp + 0x484]
jmp 0x100acafe
mov esi, dword [esp + 0x150]
mov dword [esp + 0x664], edi
mov edi, dword [esp + 0x484]
jmp 0x100aca62
movsx ecx, byte [edx]
jmp 0x100aca5a
mov esi, dword [esp + 0x664]
jmp 0x100af132
mov ecx, dword [esp + 0x668]
mov edx, dword [esp + 0x660]
cmp edx, ecx
jae 0x100af4b9
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 0x100acc55
or dword [esp + 0x65c], esi
jmp 0x100acc55
movsx ecx, byte [edx]
mov dword [esp + 0xbc], ecx
jmp 0x100ac9a8
mov esi, dword [esp + 0x664]
add ebp, 0xffffffff
add esi, 1
jmp 0x100af132
test dl, 0x40
je case.0x100ac84d.10
mov esi, 0x30
jmp case.0x100ac84d.48
mov esi, dword [esp + 0x664]
mov dword [esp + 0x658], ebp
xor edx, edx
mov dword [esp + 0x668], edx
jmp 0x100acca3
mov esi, dword [esp + 0x664]
jmp 0x100af500
xor eax, eax
jmp 0x100ace23
mov esi, 1
mov edx, eax
neg edx
add edx, 0x20
jmp 0x100acf64
xor eax, eax
jmp 0x100acfb3
lea edx, [esp + 0x49c]
mov dword [esp + 0xbc], edx
mov eax, 4
mov dword [esp + 0x660], eax
jmp 0x100ad1f0
mov ebp, 4
jmp 0x100ad748
mov edx, 2
jmp 0x100ad633
mov ebp, 4
jmp 0x100adcee
mov edx, 2
jmp 0x100adbd9
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 0x100af603
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 0x100af5d6
mov edx, dword [esp + ecx + 0x558]
test edx, edx
jne 0x100af633
mov edx, dword [esp + 0x5e8]
jmp 0x100af613
add edx, 0xffffffff
mov ecx, edx
shl ecx, 2
mov eax, dword [esp + ecx + 0x558]
test eax, eax
je 0x100af610
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 0x100af740
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 0x100af85c
lea edx, [eax - 2]
cmp edx, 5
jb 0x100af852
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 0x100af67b
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 0x100af6fe
mov eax, dword [esp + ecx + 0x558]
mov dword [esp + 0x668], edi
test eax, eax
jne 0x100af740
add dword [esp + 0x668], 0xffffffff
mov eax, dword [esp + 0x668]
cmp eax, 4
jb 0x100af82e
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 0x100af802
mov eax, dword [esp + 0x564]
mov dword [esp + 0x558], 0
cmp eax, 0xffffffff
je 0x100af797
mov eax, 3
mov dword [esp + 0x668], eax
jmp 0x100af7bd
mov eax, 3
mov dword [esp + 0x668], eax
add eax, 0xffffffff
mov edx, dword [esp + eax*4 + 0x558]
cmp edx, 0xffffffff
je 0x100af7a3
mov dword [esp + 0x668], eax
test eax, eax
je 0x100af7d5
mov edx, eax
mov eax, dword [esp + edx*4 + 0x558]
add eax, 1
mov dword [esp + edx*4 + 0x558], eax
jmp 0x100ae086
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 0x100ae086
test edx, edx
jne 0x100af83a
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 0x100af814
mov dword [esp + 0x668], edx
jmp 0x100ae086
mov eax, dword [esp + eax*4 + 0x558]
jmp 0x100ae086
mov eax, 4
mov dword [esp + 0x668], eax
mov eax, dword [esp + 0x568]
jmp 0x100ae086
mov edx, 2
jmp 0x100af6f7
mov eax, dword [esp + ecx + 0x558]
jmp 0x100af734
add esi, 0xffffffff
jne 0x100adfce
mov ebx, dword [esp + 0x598]
mov ebp, dword [esp + 0x59c]
jmp 0x100af592
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 0x100af903
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 0x100af8d6
mov edx, dword [esp + ecx + 0x498]
test edx, edx
jne 0x100af931
mov eax, dword [esp + 0x484]
jmp 0x100af913
add eax, 0xffffffff
mov ecx, eax
shl ecx, 2
mov edx, dword [esp + ecx + 0x498]
test edx, edx
je 0x100af910
mov dword [esp + 0x484], eax
mov dword [esp + 0x660], eax
mov eax, dword [esp + 0xbc]
mov eax, dword [eax]
test eax, eax
jle 0x100ae7f7
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 0x100afa47
lea edx, [eax - 2]
cmp edx, 5
jb 0x100afa50
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 0x100af979
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 0x100af9fc
mov eax, dword [esp + ecx + 0x498]
mov dword [esp + 0x660], edi
test eax, eax
jne 0x100ae7f7
add dword [esp + 0x660], 0xffffffff
jmp 0x100ae7f7
mov eax, dword [esp + ecx + 0x498]
jmp 0x100afa32
mov edx, 2
jmp 0x100af9f5
add edi, 0xffffffff
jne 0x100ae26e
mov ebx, dword [esp + 0x598]
mov ebp, dword [esp + 0x59c]
jmp 0x100af892
mov eax, 4
mov dword [esp + 0x668], eax
mov eax, dword [esp + 0x568]
jmp 0x100adddc
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 0x100afb15
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 0x100afae1
mov eax, dword [esp + 0x150]
mov eax, dword [esp + eax*4 + 0x558]
test eax, eax
jne 0x100afb35
mov eax, dword [esp + 0x668]
add eax, 0xffffffff
mov edx, dword [esp + eax*4 + 0x558]
test edx, edx
je 0x100afb20
mov dword [esp + 0x668], eax
mov eax, dword [esp + 0x66c]
mov eax, dword [eax]
test eax, eax
jle 0x100afc2f
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 0x100afc2f
lea edx, [eax - 2]
cmp edx, 5
jb 0x100b02bd
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 0x100afb7d
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 0x100afc00
mov dword [esp + 0x668], esi
mov eax, dword [esp + 0x668]
mov edx, dword [esp + eax*4 + 0x558]
test edx, edx
jne 0x100afc49
add dword [esp + 0x668], 0xffffffff
mov eax, dword [esp + 0x668]
cmp eax, 4
jb 0x100afd32
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 0x100afd05
mov eax, dword [esp + 0x564]
mov dword [esp + 0x558], 0
cmp eax, 0xffffffff
je 0x100afca0
mov eax, 3
mov dword [esp + 0x668], eax
jmp 0x100afcc6
mov eax, 3
mov dword [esp + 0x668], eax
add eax, 0xffffffff
mov edx, dword [esp + eax*4 + 0x558]
cmp edx, 0xffffffff
je 0x100afcac
mov dword [esp + 0x668], eax
test eax, eax
je 0x100afcdb
mov edx, eax
mov eax, dword [esp + edx*4 + 0x558]
add eax, 1
mov dword [esp + edx*4 + 0x558], eax
jmp 0x100afd39
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 0x100afd39
test edx, edx
jne 0x100b02a5
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 0x100afd1b
mov dword [esp + 0x668], edx
jmp 0x100afd39
mov eax, dword [esp + eax*4 + 0x558]
mov edx, dword [esp + 0x650]
test edx, edx
je 0x100adddc
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 0x100afe61
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 0x100afdcd
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 0x100afefd
cmp eax, 6
jl 0x100afedf
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 0x100afe88
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 0x100afee6
mov eax, dword [esp + 0x668]
add eax, 0xffffffff
mov dword [esp + 0x668], eax
je 0x100affec
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 0x100b02ed
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 0x100aff42
add esi, 0xffffffff
jne 0x100aff2b
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 0x100b0056
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 0x100b0029
mov edx, dword [esp + ecx + 0x558]
test edx, edx
jne 0x100b0084
mov eax, dword [esp + 0x5e8]
jmp 0x100b0066
add eax, 0xffffffff
mov ecx, eax
shl ecx, 2
mov edx, dword [esp + ecx + 0x558]
test edx, edx
je 0x100b0063
mov dword [esp + 0x5e8], eax
mov dword [esp + 0x668], eax
mov eax, dword [esp + 0x66c]
mov eax, dword [eax]
test eax, eax
jle 0x100b0191
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 0x100b0299
lea edx, [eax - 2]
cmp edx, 5
jb 0x100b028f
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 0x100b00cc
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 0x100b014f
mov eax, dword [esp + ecx + 0x558]
mov dword [esp + 0x668], edi
test eax, eax
jne 0x100b0191
add dword [esp + 0x668], 0xffffffff
mov eax, dword [esp + 0x668]
cmp eax, 4
jb 0x100b0283
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 0x100b0253
mov eax, dword [esp + 0x564]
mov dword [esp + 0x558], 0
cmp eax, 0xffffffff
je 0x100b01e8
mov eax, 3
mov dword [esp + 0x668], eax
jmp 0x100b020e
mov eax, 3
mov dword [esp + 0x668], eax
add eax, 0xffffffff
mov edx, dword [esp + eax*4 + 0x558]
cmp edx, 0xffffffff
je 0x100b01f4
mov dword [esp + 0x668], eax
test eax, eax
je 0x100b0226
mov edx, eax
mov eax, dword [esp + edx*4 + 0x558]
add eax, 1
mov dword [esp + edx*4 + 0x558], eax
jmp 0x100adddc
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 0x100adddc
test edx, edx
jne 0x100afa73
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 0x100b0269
mov dword [esp + 0x668], edx
jmp 0x100adddc
mov eax, dword [esp + eax*4 + 0x558]
jmp 0x100adddc
mov edx, 2
jmp 0x100b0148
mov eax, dword [esp + ecx + 0x558]
jmp 0x100b0185
mov eax, 4
mov dword [esp + 0x668], eax
mov eax, dword [esp + 0x568]
jmp 0x100afd39
mov edx, 2
jmp 0x100afbf9
add esi, 0xffffffff
jne 0x100ae73f
mov ebx, dword [esp + 0x598]
mov ebp, dword [esp + 0x59c]
jmp 0x100afa99
mov eax, ecx
shl eax, 2
jmp 0x100ae675
add esi, 0xffffffff
jne 0x100aff2b
mov ebx, dword [esp + 0x598]
mov ebp, dword [esp + 0x59c]
jmp 0x100affec
mov eax, 2
mov dword [esp + 0x668], eax
mov eax, dword [esp + 0x560]
jmp 0x100ae544
mov eax, 0x1b
mov dword [esp + 0x668], eax
mov edx, 2
mov dword [esp + 0x484], edx
jmp 0x100ae4de
xor eax, eax
mov dword [esp + 0x5e8], eax
mov dword [esp + 0x484], eax
jmp 0x100ae4de
movsx eax, word [0x100c6b44]
mov edx, dword [0x100c69cc]
mov esi, dword [0x100c69c8]
mov edi, dword [0x100c69c4]
mov dword [esp + 0xb8], eax
mov eax, dword [0x100c69c0]
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 0x100afd39
mov eax, 1
mov dword [esp + 0x668], eax
jmp 0x100aeb07
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 0x100aee6e
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 0x100aee6e
xor eax, eax
mov dword [esp + 0x654], eax
jmp 0x100ad0b5
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 0x100b05c1
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 0x100b049f
mov dword [esp + 0x5e8], ecx
mov dword [esp + 0x660], esi
test eax, eax
jle 0x100b05ba
xor esi, esi
add eax, eax
add esi, 1
test eax, eax
jg 0x100b04cc
mov dword [edx], eax
mov edx, dword [esp + 0x660]
shl edx, 5
sub edx, esi
mov dword [esp + 0x654], edx
test esi, esi
je 0x100b0554
mov edx, dword [esp + 0x660]
mov dword [esp + 0x49c], eax
add edx, 0xffffffff
je 0x100b0583
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 0x100b0517
mov ebx, dword [esp + 0x598]
mov ebp, dword [esp + 0x59c]
jmp 0x100b0583
mov edx, dword [esp + 0x660]
test edx, edx
je 0x100b0583
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 0x100b056d
mov eax, dword [esp + 0x5e8]
mov edx, dword [esp + eax + 0x498]
test edx, edx
jne 0x100ad0db
mov eax, dword [esp + 0x660]
mov edx, dword [esp + eax*4 + 0x494]
add eax, 0xffffffff
test edx, edx
je 0x100b05a0
mov dword [esp + 0x660], eax
jmp 0x100ad0db
xor esi, esi
jmp 0x100b04d7
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 0x100b04c2
mov dword [esp + 0x158], edx
jmp 0x100b0487
mov ebx, 0x6000000
xor eax, eax
mov dword [esp + 0x658], eax
jmp 0x100aeebc