Function at 0x1007e020
Capabilities:
Hash data using crc32b
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x40452f2
mov eax, dword fs:[0]
push eax
mov eax, 0x54ac
call fcn.1008ffc0
mov eax, dword [0x40665c0]
xor eax, ebp
mov dword [ebp - 0x24], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [0x40490f8]
sub eax, 0x64
mov dword [0x4073498], eax
mov ecx, dword [0x404926c]
sub ecx, 0x64
mov dword [0x407349c], ecx
mov edx, dword [0x4049268]
sub edx, 0x64
mov dword [0x40734a0], edx
mov eax, dword [0x4049204]
sub eax, 0x64
mov dword [0x40734a4], eax
mov ecx, dword [0x4049200]
sub ecx, 0x64
mov dword [0x40734a8], ecx
mov edx, dword [0x40493f8]
sub edx, 0x64
mov dword [0x40734ac], edx
mov eax, dword [0x4049264]
sub eax, 0x64
mov dword [0x40734b0], eax
mov ecx, dword [0x4049434]
sub ecx, 0x64
mov dword [0x40734b4], ecx
mov edx, dword [0x40494f8]
sub edx, 0x64
mov dword [0x40734b8], edx
mov eax, dword [0x4049144]
sub eax, 0x64
mov dword [0x40734bc], eax
mov ecx, dword [0x4049318]
sub ecx, 0x64
mov dword [0x40734c0], ecx
mov edx, dword [0x404910c]
sub edx, 0x64
mov dword [0x40734c4], edx
mov eax, dword [0x404929c]
sub eax, 0x64
mov dword [0x40734c8], eax
mov ecx, dword [0x4049010]
sub ecx, 0x64
mov dword [0x40734dc], ecx
mov edx, dword [0x404901c]
sub edx, 0x64
mov dword [0x40734e0], edx
mov eax, dword [0x4049020]
sub eax, 0x64
mov dword [0x40734e4], eax
mov ecx, dword [0x4049030]
sub ecx, 0x64
mov dword [0x40734e8], ecx
mov edx, dword [0x4049024]
sub edx, 0x64
mov dword [0x40734ec], edx
mov eax, dword [0x4049028]
sub eax, 0x64
mov dword [0x40734f0], eax
push 0x404fc14
push 0x404db54
call dword [0x40490f8]
push eax
call fcn.10050ef0
add esp, 8
mov dword [0x40734f4], eax
push 0x404fc08
push 0x404db54
call dword [0x40490f8]
push eax
call fcn.10050ef0
add esp, 8
mov dword [0x40734f8], eax
mov ecx, dword [0x40490f8]
push ecx
call fcn.1008ea00
add esp, 4
movzx esi, al
mov edx, dword [0x40734f4]
push edx
call fcn.1008ea00
add esp, 4
movzx eax, al
add esi, eax
mov dword [ebp - 0x22c], esi
mov ecx, dword [0x4049334]
sub ecx, 0x64
mov dword [0x40734fc], ecx
mov edx, 2
shl edx, 2
mov eax, dword [0x406931c]
mov ecx, dword [0x406931c]
mov esi, dword [0x406931c]
mov ebx, dword [esi + 0x7c]
xor ebx, dword [ecx + 0x70]
xor ebx, dword [eax + edx]
and ebx, 0x20
neg ebx
sbb ebx, ebx
neg ebx
movzx edx, bl
test edx, edx
je 0x1007e20f
call fcn.10086290
mov dword [0x4064a6c], 0x404fc00
call dword [0x4049260]
mov dword [0x4073500], eax
call dword [0x404925c]
mov dword [0x4073504], eax
call dword [0x4049240]
mov dword [0x4073508], eax
call dword [0x4049258]
mov dword [0x407350c], eax
mov dword [0x4064a6c], 0x404fbf4
call fcn.10075990
movzx eax, al
test eax, eax
jne 0x1007e2f6
push 0x10010
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0xf
call fcn.10035210
add esp, 0x28
push eax
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x53
call fcn.10035210
add esp, 0x28
push eax
push 0
call fcn.10033ce0
add esp, 4
push eax
push 0x404fbe0
call fcn.100878f0
add esp, 0x14
mov eax, 2
jmp 0x100824f5
mov dword [0x4064a6c], 0x404fbd4
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x18]
mov eax, dword [edx]
and eax, 1
je 0x1007e32d
mov cl, byte [0x40692f6]
mov byte [ebp - 0x51f9], cl
movzx edx, byte [ebp - 0x51f9]
test edx, edx
je 0x1007e32d
mov byte [ebp - 0x5201], 1
jmp 0x1007e334
mov byte [ebp - 0x5201], 0
mov eax, dword [0x406b22c]
mov dword [ebp - 0x5200], eax
mov ecx, dword [ebp - 0x5200]
mov dl, byte [ebp - 0x5201]
mov byte [ecx + 0x61e], dl
mov dword [0x4064a6c], 0x404fbc8
mov eax, 2
shl eax, 2
mov ecx, dword [0x406931c]
mov edx, dword [0x406931c]
mov esi, dword [0x406931c]
mov ebx, dword [esi + 0x7c]
xor ebx, dword [edx + 0x70]
xor ebx, dword [ecx + eax]
and ebx, 0x20
neg ebx
sbb ebx, ebx
neg ebx
movzx eax, bl
test eax, eax
je 0x1007e3a6
mov ecx, dword [0x4049254]
push ecx
call fcn.1008ea00
add esp, 4
movzx edx, al
mov dword [ebp - 0x23c], edx
mov dword [0x4064a6c], 0x404fbc0
mov eax, dword [0x40490d4]
sub eax, 0x64
mov dword [0x40734cc], eax
mov ecx, dword [0x4049170]
sub ecx, 0x64
mov dword [0x40734d0], ecx
mov edx, dword [0x40494a8]
sub edx, 0x64
mov dword [0x40734d4], edx
mov eax, dword [0x40493c0]
sub eax, 0x64
mov dword [0x40734d8], eax
mov ecx, 0xe
shl ecx, 2
mov edx, dword [0x406931c]
mov eax, dword [0x406931c]
mov esi, dword [0x406931c]
mov esi, dword [esi + 0x7c]
xor esi, dword [eax + 0x3c]
xor esi, dword [edx + ecx]
mov dword [ebp - 0x20], esi
mov ecx, 0x16
shl ecx, 2
mov edx, dword [0x406931c]
mov eax, dword [0x406931c]
mov esi, dword [0x406931c]
mov esi, dword [esi + 0x60]
xor esi, dword [eax + 0x70]
xor esi, dword [edx + ecx]
mov dword [ebp - 0x234], esi
mov ecx, dword [ebp - 0x20]
add ecx, dword [ebp - 0x234]
mov dword [ebp - 0x18], ecx
call fcn.10086290
mov dword [ebp - 0x228], eax
cmp dword [ebp - 0x228], 0
je 0x1007e47b
mov edx, 0xa
shl edx, 2
mov eax, dword [0x406931c]
mov ecx, dword [eax + edx]
xor ecx, 0x2611
mov edx, 0xa
shl edx, 2
mov eax, dword [0x406931c]
mov dword [edx + eax], ecx
call fcn.10082670
movzx ecx, al
test ecx, ecx
je 0x1007e491
mov eax, 2
jmp 0x100824f5
push 0
mov ecx, 0x4068cd0
call fcn.1001deb0
mov edx, dword [ebp + 8]
cmp dword [edx + 0x14], 0
jne 0x1007e50e
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x1c]
push ecx
call fcn.1008fe30
add esp, 4
test eax, eax
je 0x1007e50e
mov edx, dword [0x406b22c]
mov dword [ebp - 0x5208], edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x1c]
push ecx
mov ecx, dword [ebp - 0x5208]
call fcn.10016e70
movzx edx, al
test edx, edx
jne 0x1007e4ff
push 0x10
push 0
push 0x404fbb0
push 0
call fcn.10033ce0
add esp, 4
push eax
push 0x404fb98
call fcn.10088180
add esp, 0x14
mov eax, 2
jmp 0x100824f5
mov eax, dword [ebp + 8]
cmp dword [eax + 0x14], 1
je 0x1007e524
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x14], 8
jne 0x1007e5a9
mov dl, byte [0x40692fa]
mov byte [ebp - 0x5209], dl
movzx eax, byte [ebp - 0x5209]
test eax, eax
jne 0x1007e552
mov cl, byte [0x40692ef]
mov byte [ebp - 0x520a], cl
movzx edx, byte [ebp - 0x520a]
test edx, edx
je 0x1007e5a9
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x1c]
push ecx
push 0x4073530
call fcn.1008fec0
add esp, 8
mov edx, dword [ebp + 8]
cmp dword [edx + 0x14], 8
sete al
push eax
push 0
push 0
call fcn.100797a0
add esp, 0xc
movzx ecx, al
test ecx, ecx
je 0x1007e590
mov edx, dword [ebp + 8]
mov dword [edx + 0x28], 0
jmp 0x1007e59a
mov eax, dword [ebp + 8]
mov dword [eax + 0x28], 1
mov eax, 2
jmp 0x100824f5
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x14], 3
jne 0x1007e5c6
call fcn.1007baa0
mov eax, 2
jmp 0x100824f5
mov edx, dword [ebp + 8]
cmp dword [edx + 0x14], 4
jne 0x1007e5f9
mov al, byte [0x40692f8]
mov byte [ebp - 0x520b], al
movzx ecx, byte [ebp - 0x520b]
test ecx, ecx
je 0x1007e5f9
call fcn.10083b40
mov eax, 2
jmp 0x100824f5
mov edx, dword [ebp + 8]
cmp dword [edx + 0x14], 5
jne 0x1007e62e
mov al, byte [0x40692fb]
mov byte [ebp - 0x520c], al
movzx ecx, byte [ebp - 0x520c]
test ecx, ecx
je 0x1007e62e
push 0
call fcn.100834a0
add esp, 4
mov eax, 2
jmp 0x100824f5
mov edx, dword [ebp + 8]
cmp dword [edx + 0x14], 9
jne 0x1007e64d
push 1
call fcn.100834a0
add esp, 4
mov eax, 2
jmp 0x100824f5
mov eax, dword [ebp + 8]
cmp dword [eax + 0x14], 6
jne 0x1007e667
call fcn.10084880
mov eax, 2
jmp 0x100824f5
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x14], 7
jne 0x1007e683
push 0
call fcn.100757d0
mov eax, 2
jmp 0x100824f5
mov edx, dword [ebp + 8]
cmp dword [edx + 0x14], 0xa
jne 0x1007e696
mov eax, 2
jmp 0x100824f5
mov al, byte [0x404b62d]
mov byte [ebp - 0x224], al
push 0x1ff
push 0
lea ecx, [ebp - 0x223]
push ecx
call fcn.1008f860
add esp, 0xc
mov dword [ebp - 0x238], 0
mov dl, byte [0x40692ef]
mov byte [ebp - 0x520d], dl
movzx eax, byte [ebp - 0x520d]
test eax, eax
je 0x1007e6e4
mov dword [ebp - 0x238], 0x404fb8c
jmp 0x1007e705
mov cl, byte [0x40692fa]
mov byte [ebp - 0x520e], cl
movzx edx, byte [ebp - 0x520e]
test edx, edx
je 0x1007e705
mov dword [ebp - 0x238], 0x404bce0
cmp dword [ebp - 0x238], 0
je 0x1007e73c
mov ecx, 0x4068cd0
call fcn.1001dd20
push eax
push 0x1ff
lea eax, [ebp - 0x224]
push eax
push 0x404b62d
mov ecx, dword [ebp - 0x238]
push ecx
push 0x404bcd8
call dword [0x4049090]
lea edx, [ebp - 0x224]
push edx
call fcn.1008fe30
add esp, 4
test eax, eax
je 0x1007e7fa
mov al, byte [0x404b62d]
mov byte [ebp - 0x33c], al
push 0xff
push 0
lea ecx, [ebp - 0x33b]
push ecx
call fcn.1008f860
add esp, 0xc
mov dl, byte [0x404b62d]
mov byte [ebp - 0x43c], dl
push 0xff
push 0
lea eax, [ebp - 0x43b]
push eax
call fcn.1008f860
add esp, 0xc
lea ecx, [ebp - 0x43c]
push ecx
lea edx, [ebp - 0x33c]
push edx
lea eax, [ebp - 0x224]
push eax
call fcn.100557c0
add esp, 0xc
movzx ecx, al
test ecx, ecx
je 0x1007e7fa
push 1
lea edx, [ebp - 0x43c]
push edx
lea eax, [ebp - 0x33c]
push eax
mov ecx, 0x4068cd0
call fcn.1001ea30
movzx ecx, al
test ecx, ecx
je 0x1007e7fa
mov ecx, 0x4068cd0
call fcn.1001dd20
push eax
push 0
mov edx, dword [ebp - 0x238]
push edx
push 0x404bcd8
call dword [0x40491f8]
mov dword [0x4064a6c], 0x404fb84
call fcn.1008ea00
mov byte [ebp - 0x1a], al
mov eax, dword [0x4073848]
mov dword [0x4073844], eax
movzx ecx, byte [ebp - 0x1a]
test ecx, ecx
je 0x1007e844
mov edx, 0xa
shl edx, 2
mov eax, dword [0x406931c]
mov ecx, dword [eax + edx]
xor ecx, 0x1c96
mov edx, 0xa
shl edx, 2
mov eax, dword [0x406931c]
mov dword [edx + eax], ecx
mov ecx, 0x4068cd0
call fcn.100825e0
movzx ecx, al
test ecx, ecx
je 0x1007e90f
call fcn.1004f120
movzx edx, al
test edx, edx
je 0x1007e90f
push 0x10044
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0xe
call fcn.10035210
add esp, 0x28
push eax
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x42
call fcn.10035210
add esp, 0x28
push eax
push 0
call fcn.10033ce0
add esp, 4
push eax
push 0x404fb74
call fcn.100878f0
add esp, 0x14
cmp eax, 6
jne 0x1007e905
push 0
push 2
call dword [0x40493c4]
mov eax, 2
jmp 0x100824f5
mov dword [0x4064a6c], 0x404fb6c
call fcn.1008ea00
mov dword [0x4064a6c], 0x404fb64
mov ecx, dword [0x406b22c]
mov dword [ebp - 0x5214], ecx
mov edx, dword [ebp - 0x5214]
mov byte [edx + 0x620], 0
mov eax, dword [0x406b22c]
mov dword [ebp - 0x5218], eax
mov ecx, dword [ebp - 0x5218]
mov dl, byte [ecx + 0x614]
mov byte [ebp - 0x5219], dl
movzx eax, byte [ebp - 0x5219]
test eax, eax
je 0x1007ea02
mov dword [0x4064a6c], 0x404fb5c
push 0
mov ecx, dword [0x406b22c]
call fcn.10016c50
mov dword [0x4064a6c], 0x404fb54
push 1
mov ecx, dword [0x406b22c]
call fcn.10016c50
mov dword [0x4064a6c], 0x404fb4c
push 0
mov ecx, 0x4068cd0
call fcn.1001deb0
mov dword [0x4064a6c], 0x404fb44
mov ecx, dword [0x406b22c]
mov dword [ebp - 0x5220], ecx
push 0
push 0
mov ecx, dword [ebp - 0x5220]
call fcn.10016b60
movzx edx, al
test edx, edx
jne 0x1007ea02
mov eax, dword [0x406b22c]
mov dword [ebp - 0x5224], eax
mov ecx, dword [ebp - 0x5224]
mov byte [ecx + 0x614], 0
push 0x573
call fcn.10076580
add esp, 4
mov dword [0x4064a6c], 0x404fb38
mov byte [ebp - 0x19], 0
mov byte [0x4064a74], 1
mov edx, dword [0x406b22c]
mov dword [ebp - 0x5228], edx
mov eax, dword [ebp - 0x5228]
mov cl, byte [eax + 0x614]
mov byte [ebp - 0x5229], cl
movzx edx, byte [ebp - 0x5229]
test edx, edx
jne 0x1007ef14
mov byte [ebp - 0x43d], 1
mov dword [0x4064a6c], 0x404fb2c
call fcn.10076590
cmp eax, 0x573
jne 0x1007eb62
mov dword [0x4064a6c], 0x404fb20
mov eax, dword [0x406b22c]
mov dword [ebp - 0x5230], eax
push 1
mov ecx, dword [ebp - 0x5230]
call fcn.10016340
push eax
push 0x404b9b0
lea ecx, [ebp - 0x450]
push ecx
call fcn.1008fd7e
add esp, 0xc
lea edx, [ebp - 0x450]
push edx
lea ecx, [ebp - 0x518c]
call fcn.10064ef0
mov dword [ebp - 4], 0
push 0x10010
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0xf
call fcn.10035210
add esp, 0x28
push eax
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
lea eax, [ebp - 0x518c]
push eax
push 0x29
call fcn.10035210
add esp, 0x28
push eax
push 0
call fcn.10033ce0
add esp, 4
push eax
push 0x404fb0c
call fcn.100878f0
add esp, 0x14
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x518c]
call fcn.1000c9b0
mov byte [ebp - 0x43d], 0
jmp 0x1007eed6
call fcn.10076590
cmp eax, 0x47e
jne 0x1007ec15
mov dword [0x4064a6c], 0x404fb00
push 0x10010
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0xf
call fcn.10035210
add esp, 0x28
push eax
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x30
call fcn.10035210
add esp, 0x28
push eax
push 0
call fcn.10033ce0
add esp, 4
push eax
push 0x404fae8
call fcn.100878f0
add esp, 0x14
mov byte [ebp - 0x43d], 0
jmp 0x1007eed6
call fcn.10076590
cmp eax, 0x53d
jne 0x1007ecc8
mov dword [0x4064a6c], 0x404fadc
push 0x10010
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0xf
call fcn.10035210
add esp, 0x28
push eax
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x4f
call fcn.10035210
add esp, 0x28
push eax
push 0
call fcn.10033ce0
add esp, 4
push eax
push 0x404fac8
call fcn.100878f0
add esp, 0x14
mov byte [ebp - 0x43d], 0
jmp 0x1007eed6
mov ecx, dword [0x406b22c]
mov dword [ebp - 0x5250], ecx
mov ecx, dword [ebp - 0x5250]
call fcn.10013390
movzx edx, al
test edx, edx
jne 0x1007eeb3
mov al, byte [0x40692ef]
mov byte [ebp - 0x5251], al
movzx ecx, byte [ebp - 0x5251]
test ecx, ecx
jne 0x1007eeb3
mov dword [0x4064a6c], 0x404fabc
mov dl, byte [0x40692f9]
mov byte [ebp - 0x5252], dl
movzx eax, byte [ebp - 0x5252]
test eax, eax
je 0x1007ed81
mov dword [0x4064a6c], 0x404fab0
push 0
push 0x404bb34
push 0x404bb8c
mov ecx, 0x406b234
call fcn.1000d040
push 1
push 0
push 0
mov ecx, 0x4068cd0
call fcn.1001ea30
movzx ecx, al
test ecx, ecx
jne 0x1007ed7c
call fcn.10079d30
movzx edx, al
test edx, edx
je 0x1007ed75
mov byte [0x4064a74], 0
mov byte [ebp - 0x19], 1
jmp 0x1007ed7c
mov byte [ebp - 0x43d], 0
jmp 0x1007eeb1
mov dword [0x4064a6c], 0x404faa4
push 0
mov ecx, 0x4068cd0
call fcn.1001deb0
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x15
call fcn.10035210
add esp, 0x28
push eax
lea eax, [ebp - 0x2454]
push eax
call fcn.1009014e
add esp, 8
push 0x10013
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x2f
call fcn.10035210
add esp, 0x28
push eax
lea ecx, [ebp - 0x2454]
push ecx
push 0
call fcn.10033ce0
add esp, 4
push eax
push 0x404fa94
call fcn.100878f0
add esp, 0x14
mov dword [ebp - 0x2458], eax
cmp dword [ebp - 0x2458], 2
jne 0x1007ee69
push 0x10
call dword [0x40493cc]
movsx edx, ax
and edx, 0xfffffffe
je 0x1007ee60
push 0
call fcn.100757d0
mov byte [ebp - 0x43d], 0
jmp 0x1007eeb1
cmp dword [ebp - 0x2458], 6
jne 0x1007ee78
mov byte [ebp - 0x19], 1
jmp 0x1007eeb1
cmp dword [ebp - 0x2458], 7
jne 0x1007eeb1
push 1
push 0
push 0
mov ecx, 0x4068cd0
call fcn.1001ea30
movzx eax, al
test eax, eax
jne 0x1007eeb1
call fcn.10079d30
movzx ecx, al
test ecx, ecx
je 0x1007eeaa
mov byte [ebp - 0x19], 1
jmp 0x1007eeb1
mov byte [ebp - 0x43d], 0
jmp 0x1007eed6
mov dword [0x4064a6c], 0x404fa88
call fcn.10079d30
movzx edx, al
test edx, edx
je 0x1007eecf
mov byte [ebp - 0x19], 1
jmp 0x1007eed6
mov byte [ebp - 0x43d], 0
movzx eax, byte [ebp - 0x19]
test eax, eax
je 0x1007eefa
push 0
push 1
push 0
call fcn.100797a0
add esp, 0xc
movzx ecx, al
test ecx, ecx
jne 0x1007eefa
mov byte [ebp - 0x43d], 0
movzx edx, byte [ebp - 0x43d]
test edx, edx
jne 0x1007ef0f
mov eax, 2
jmp 0x100824f5
jmp 0x1007f174
mov eax, dword [0x406b22c]
mov dword [ebp - 0x5258], eax
mov ecx, dword [ebp - 0x5258]
mov dl, byte [ecx + 0x615]
mov byte [ebp - 0x5259], dl
movzx eax, byte [ebp - 0x5259]
test eax, eax
je 0x1007f0e1
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x14], 2
jne 0x1007f0e1
mov dword [0x4064a6c], 0x404fa7c
mov dl, byte [0x40692ee]
mov byte [ebp - 0x525a], dl
movzx eax, byte [ebp - 0x525a]
test eax, eax
jne 0x1007f045
call fcn.10083d00
mov dword [ebp - 0x245c], eax
cmp dword [ebp - 0x245c], 0
je 0x1007f040
mov ecx, dword [0x406b22c]
mov dword [ebp - 0x5260], ecx
mov edx, dword [ebp - 0x245c]
push edx
mov ecx, dword [ebp - 0x5260]
call fcn.1001a940
movzx eax, al
test eax, eax
jne 0x1007f040
push 0x10010
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0xf
call fcn.10035210
add esp, 0x28
push eax
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x51
call fcn.10035210
add esp, 0x28
push eax
push 0
call fcn.10033ce0
add esp, 4
push eax
push 0x404f5e4
call fcn.100878f0
add esp, 0x14
jmp 0x1007f0d2
push 0x10040
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0xf
call fcn.10035210
add esp, 0x28
push eax
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x40710f8
push 0x3e
call fcn.10035210
add esp, 0x28
push eax
push 0
call fcn.10033ce0
add esp, 4
push eax
push 0x404fa60
call fcn.100878f0
add esp, 0x14
mov eax, 2
jmp 0x100824f5
mov dword [0x4064a6c], 0x404fa54
push 0
mov ecx, 0x4068cd0
call fcn.1001deb0
mov ecx, dword [0x406b22c]
mov dword [ebp - 0x5264], ecx
mov edx, dword [ebp - 0x5264]
mov al, byte [edx + 0x6a5]
mov byte [ebp - 0x5265], al
movzx ecx, byte [ebp - 0x5265]
test ecx, ecx
je 0x1007f154
mov edx, dword [0x406b22c]
mov dword [ebp - 0x526c], edx
mov eax, dword [ebp - 0x526c]
mov cl, byte [eax + 0x6a6]
mov byte [ebp - 0x526d], cl
movzx edx, byte [ebp - 0x526d]
test edx, edx
je 0x1007f154
mov ecx, dword [0x406b22c]
call fcn.1001c0a0
call fcn.10079bf0
movzx eax, al
test eax, eax
jne 0x1007f174
push 1
call fcn.10075c40
add esp, 4
mov eax, 2
jmp 0x100824f5
mov ecx, dword [0x406b22c]
mov dword [ebp - 0x5274], ecx
mov edx, dword [ebp - 0x5274]
mov al, byte [edx + 0x620]
mov byte [ebp - 0x5275], al
movzx ecx, byte [ebp - 0x5275]
test ecx, ecx
je 0x1007f1ac
mov dword [0x4064a6c], 0x404fa48
jmp 0x1007e928
push 0
call fcn.10075c40
add esp, 4
test eax, eax
je 0x1007f244
mov ecx, 0x406936c
call fcn.10014ee0
and eax, 1
je 0x1007f244
call fcn.10027960
movzx edx, al
test edx, edx
je 0x1007f230
mov ecx, dword [0x406b22c]
call fcn.1001b3a0
push 0
mov eax, dword [0x406b22c]
push eax
call fcn.10007e50
add esp, 8
push 1
call fcn.10075c40
add esp, 4
mov dword [ebp - 0x2460], eax
mov ecx, dword [0x4069320]
mov dword [ebp - 0x527c], ecx
mov edx, dword [ebp - 0x2460]
xor edx, dword [ebp - 0x527c]
xor edx, 0xffffffff
push edx
mov eax, dword [0x406b22c]
push eax
call fcn.10027a00
add esp, 8
jmp 0x1007f23a
push 1
call fcn.10075c40
add esp, 4
mov eax, 2
jmp 0x100824f5
mov dword [0x4064a6c], 0x404fa40
mov ecx, 7
shl ecx, 2
mov edx, dword [0x406931c]
mov eax, dword [0x406931c]
mov esi, dword [0x406931c]
mov edi, dword [0x406931c]
mov edi, dword [edi + 0x90]
xor edi, dword [esi + 0x78]
xor edi, dword [eax + 0x68]
xor edi, dword [edx + ecx]
mov dword [ebp - 0x14], edi
je 0x1007f39e
mov dword [ebp - 0x2464], 0x1e
mov dword [ebp - 0x2468], 0x2d
mov ecx, dword [0x406ae24]
mov dword [ebp - 0x5280], ecx
mov edx, dword [ebp - 0x14]
cmp edx, dword [ebp - 0x5280]
je 0x1007f2db
mov eax, dword [ebp - 0x14]
mov dword [0x406ae24], eax
mov dword [0x406ae28], 0
mov dword [0x406ae2c], 0
mov dword [0x406ae30], 0
jmp 0x1007f35e
push 0
call fcn.10092e96
add esp, 4
cmp dword [ebp - 0x14], eax
jbe 0x1007f305
mov ecx, dword [0x406ae28]
mov dword [ebp - 0x5284], ecx
mov edx, dword [ebp - 0x5284]
add edx, 1
mov dword [0x406ae28], edx
mov eax, dword [0x406ae30]
mov dword [ebp - 0x5288], eax
push 0
call fcn.10059160
add esp, 4
movzx ecx, ax
cmp ecx, dword [ebp - 0x5288]
je 0x1007f35e
push 0
call fcn.10059160
add esp, 4
movzx edx, ax
mov dword [ebp - 0x528c], edx
mov eax, dword [ebp - 0x528c]
mov dword [0x406ae30], eax
mov ecx, dword [0x406ae2c]
mov dword [ebp - 0x5290], ecx
mov edx, dword [ebp - 0x5290]
add edx, 1
mov dword [0x406ae2c], edx
mov eax, dword [0x406ae28]
mov dword [ebp - 0x5294], eax
cmp dword [ebp - 0x5294], 0x2d
ja 0x1007f387
mov ecx, dword [0x406ae2c]
mov dword [ebp - 0x5298], ecx
cmp dword [ebp - 0x5298], 0x1e
jbe 0x1007f39e
push 0x404fa38
call fcn.10076750
add esp, 4
mov eax, 2
jmp 0x100824f5
mov dword [0x4064a6c], 0x404fa2c
mov edx, dword [0x406b22c]
mov dword [ebp - 0x529c], edx
mov ecx, dword [ebp - 0x529c]
call fcn.1001c450
movzx eax, al
test eax, eax
jne 0x1007f3d0
mov eax, 2
jmp 0x100824f5
mov ecx, dword [0x406b22c]
mov dword [ebp - 0x52a0], ecx
mov ecx, dword [ebp - 0x52a0]
call fcn.10016520
movzx edx, al
test edx, edx
jne 0x1007f3f8
mov eax, 2
jmp 0x100824f5
mov eax, 2
shl eax, 2
mov ecx, dword [0x406931c]
mov edx, dword [0x406931c]
mov esi, dword [0x406931c]
mov ebx, dword [esi + 0x7c]
xor ebx, dword [edx + 0x70]
xor ebx, dword [ecx + eax]
and ebx, 0x20
neg ebx
sbb ebx, ebx
neg ebx
movzx eax, bl
test eax, eax
je 0x1007f43f
call fcn.10033f50
test eax, eax
jne 0x1007f43f
call fcn.1008ea00
mov byte [ebp - 0x22d], al
mov edx, dword [0x406b22c]
mov dword [ebp - 0x52a4], edx
mov eax, dword [ebp - 0x52a4]
mov ecx, dword [eax + 0x668]
mov dword [ebp - 0x52a8], ecx
cmp dword [ebp - 0x52a8], 0
je 0x1007f615
mov edx, dword [0x406b22c]
mov dword [ebp - 0x52ac], edx
mov eax, dword [ebp - 0x52ac]
mov ecx, dword [eax + 0x668]
mov dword [ebp - 0x52b0], ecx
mov edx, dword [0x4073078]
add edx, dword [ebp - 0x52b0]
mov dword [ebp - 0x2478], edx
mov eax, dword [ebp - 0x2478]
mov ecx, dword [eax]
mov dword [ebp - 0x2474], ecx
mov edx, dword [ebp - 0x2478]
add edx, 4
mov dword [ebp - 0x2478], edx
mov eax, dword [ebp - 0x2474]
add eax, 0x10000
push eax
call fcn.1008fff0
add esp, 4
mov dword [ebp - 0x5190], eax
mov ecx, dword [ebp - 0x5190]
mov dword [ebp - 0x2470], ecx
mov edx, dword [ebp - 0x2470]
mov dword [ebp - 0x246c], edx
mov eax, 1
test eax, eax
je 0x1007f580
mov ecx, dword [ebp - 0x2474]
add ecx, 0x10000
mov dword [ebp - 0x247c], ecx
push 0
push 0
lea edx, [ebp - 0x247c]
push edx
mov eax, dword [ebp - 0x246c]
push eax
mov ecx, dword [ebp - 0x2478]
push ecx
call fcn.10033440
add esp, 0x14
mov dword [ebp - 0x2478], eax
cmp dword [ebp - 0x2478], 0
jne 0x1007f55e
mov edx, dword [ebp + 8]
mov eax, dword [edx]
mov dword [eax], 0
push 0x404fa1c
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 4]
push edx
call fcn.1008fec0
add esp, 8
xor eax, eax
jmp 0x100824f5
cmp dword [ebp - 0x247c], 0
jne 0x1007f569
jmp 0x1007f580
mov eax, dword [ebp - 0x246c]
add eax, dword [ebp - 0x247c]
mov dword [ebp - 0x246c], eax
jmp 0x1007f4e9
mov ecx, dword [0x406b22c]
mov dword [ebp - 0x52b4], ecx
mov edx, dword [ebp - 0x52b4]
mov ax, word [edx + 0x656]
mov word [ebp - 0x52b6], ax
movzx ecx, word [ebp - 0x52b6]
and ecx, 0x7fff
push ecx
call dword [0x4068914]
add esp, 4
mov edx, dword [0x406b22c]
mov dword [ebp - 0x52bc], edx
mov eax, dword [ebp - 0x52bc]
mov cx, word [eax + 0x656]
mov word [ebp - 0x52be], cx
push 0
movzx edx, word [ebp - 0x52be]
and edx, 0x8000
setne al
push eax
mov ecx, dword [ebp - 0x2470]
push ecx
call dword [0x4068930]
add esp, 0xc
mov edx, dword [ebp - 0x2470]
mov dword [ebp - 0x5194], edx
mov eax, dword [ebp - 0x5194]
push eax
call fcn.1008ffeb
add esp, 4
mov ecx, 2
shl ecx, 2
mov edx, dword [0x406931c]
mov eax, dword [0x406931c]
mov esi, dword [0x406931c]
mov ebx, dword [esi + 0x7c]
xor ebx, dword [eax + 0x70]
xor ebx, dword [edx + ecx]
and ebx, 0x20
neg ebx
sbb ebx, ebx
neg ebx
movzx ecx, bl
test ecx, ecx
je 0x1007f67a
movzx edx, byte [ebp - 0x22d]
test edx, edx
je 0x1007f67a
mov eax, 0xa
shl eax, 2
mov ecx, dword [0x406931c]
mov edx, dword [ecx + eax]
xor edx, 0xf88b6dc3
mov eax, 0xa
shl eax, 2
mov ecx, dword [0x406931c]
mov dword [eax + ecx], edx
mov dword [0x4064a6c], 0x404fa14
mov edx, dword [0x406aef4]
mov dword [ebp - 0x52c4], edx
mov eax, dword [ebp - 0x52c4]
add eax, 1
mov dword [0x406aef4], eax
mov ecx, dword [0x4069370]
or ecx, 0x20
mov dword [0x4069370], ecx
mov edx, dword [0x406aef8]
mov dword [ebp - 0x52c8], edx
mov eax, dword [ebp - 0x52c8]
add eax, 1
mov dword [0x406aef8], eax
mov ecx, dword [0x4069370]
or ecx, 0x20
mov dword [0x4069370], ecx
mov edx, dword [0x4049480]
push edx
call fcn.1008ea00
add esp, 4
movzx eax, al
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
je 0x1007f718
mov ecx, 0xa
shl ecx, 2
mov edx, dword [0x406931c]
mov eax, dword [edx + ecx]
xor eax, 0x207d
mov ecx, 0xa
shl ecx, 2
mov edx, dword [0x406931c]
mov dword [ecx + edx], eax
mov dword [0x4064a6c], 0x404fa0c
push 0
mov ecx, 0x4068cd0
call fcn.1001deb0
push 0
mov eax, dword [0x406b22c]
push eax
call fcn.10007e50
add esp, 8
call fcn.10058e10
mov dword [0x4073514], eax
mov cl, byte [0x40692ef]
mov byte [ebp - 0x52c9], cl
movzx edx, byte [ebp - 0x52c9]
test edx, edx
je 0x1007f7b8
mov eax, dword [0x406b22c]
mov dword [ebp - 0x52d0], eax
mov ecx, dword [ebp - 0x52d0]
mov dl, byte [ecx + 0x618]
mov byte [ebp - 0x52d1], dl
mov eax, dword [0x406b22c]
mov dword [ebp - 0x52d8], eax
mov cl, byte [ebp - 0x52d1]
push ecx
push 1
mov ecx, dword [ebp - 0x52d8]
call fcn.10016340
push eax
push 0x4068cdc
call fcn.1005e6d0
add esp, 0xc
mov eax, 2
jmp 0x100824f5
mov dword [0x4064a6c], 0x404fa04
mov dword [ebp - 0x2620], 0
mov byte [ebp - 0x261c], 0
lea edx, [ebp - 0x2628]
push edx
push 0x4014970
call dword [0x4068934]
add esp, 8
mov eax, 2
shl eax, 2
mov ecx, dword [0x406931c]
mov edx, dword [0x406931c]
mov esi, dword [0x406931c]
mov ebx, dword [esi + 0x7c]
xor ebx, dword [edx + 0x70]
xor ebx, dword [ecx + eax]
and ebx, 0x20
neg ebx
sbb ebx, ebx
neg ebx
movzx eax, bl
test eax, eax
je 0x1007f865
movsx ecx, byte [ebp - 0x261c]
test ecx, ecx
je 0x1007f865
mov edx, 0x1f
shl edx, 2
mov eax, dword [0x406931c]
mov ecx, dword [eax + edx]
xor ecx, 0
mov dword [ebp - 0x52e4], ecx
mov edx, 0xa
shl edx, 2
mov eax, dword [0x406931c]
mov ecx, dword [eax + edx]
xor ecx, dword [ebp - 0x52e4]
mov edx, 0xa
shl edx, 2
mov eax, dword [0x406931c]
mov dword [edx + eax], ecx
mov dword [0x4064a6c], 0x404f9fc
push 1
call fcn.1004fc00
add esp, 4
mov ecx, dword [0x40491b0]
push ecx
call fcn.1008ea00
add esp, 4
movzx edx, al
test edx, edx
je 0x1007f8d1
mov eax, 0x24
shl eax, 2
mov ecx, dword [0x406931c]
mov edx, dword [ecx + eax]
xor edx, 0
mov dword [ebp - 0x52e8], edx
mov eax, 0xa
shl eax, 2
mov ecx, dword [0x406931c]
mov edx, dword [ecx + eax]
xor edx, dword [ebp - 0x52e8]
mov eax, 0xa
shl eax, 2
mov ecx, dword [0x406931c]
mov dword [eax + ecx], edx
mov edx, dword [0x4069334]
mov dword [ebp - 0x2638], edx
mov eax, dword [ebp - 0x2638]
mov ecx, dword [ebp - 0x2638]
add ecx, dword [eax + 0x3c]
mov dword [ebp - 0x25c4], ecx
mov edx, dword [0x4069334]
mov dword [ebp - 0x52ec], edx
mov eax, dword [ebp - 0x52ec]
mov dword [ebp - 0x2598], eax
mov ecx, dword [ebp - 0x25c4]
mov edx, dword [ecx + 0x50]
mov dword [ebp - 0x2618], edx
mov dword [ebp - 0x25b0], 0
mov dword [ebp - 0x2594], 0
call fcn.10086290
test eax, eax
je 0x1007f952
mov eax, 0x18
shl eax, 2
mov ecx, dword [0x406931c]
mov edx, dword [ecx + eax]
xor edx, 0
mov dword [ebp - 0x548c], edx
jmp 0x1007f95c
mov dword [ebp - 0x548c], 0
xor eax, eax
shl eax, 2
mov ecx, dword [0x406931c]
mov edx, dword [ecx + eax]
xor edx, 0
xor edx, dword [ebp - 0x548c]
mov dword [ebp - 0x248c], edx
mov eax, 0x25
shl eax, 2
mov ecx, dword [0x406931c]
mov edx, dword [0x406931c]
mov esi, dword [0x406931c]
mov ebx, dword [esi + 0x7c]
xor ebx, dword [edx + 0x70]
xor ebx, dword [ecx + eax]
and ebx, 0x200000
neg ebx
sbb ebx, ebx
neg ebx
movzx eax, bl
test eax, eax
je 0x1007ffd7
mov dword [0x4064a6c], 0x404f9f4
mov ecx, dword [0x4073510]
mov edx, dword [ecx]
mov dword [ebp - 0x2594], edx
mov eax, dword [0x4073510]
add eax, 4
mov dword [0x4073510], eax
mov ecx, dword [ebp - 0x2594]
add ecx, 0x10000
mov dword [ebp - 0x2788], ecx
mov dword [ebp - 0x2784], 0xa
push 0
call fcn.10092e96
add esp, 4
mov dword [ebp - 0x52f0], eax
mov edx, dword [ebp - 0x52f0]
mov dword [ebp - 0x2664], edx
mov eax, dword [0x40491b0]
push eax
call fcn.1008ea00
add esp, 4
movzx ecx, al
test ecx, ecx
je 0x1007fa44
mov edx, 0x1f
shl edx, 2
mov eax, dword [0x406931c]
mov ecx, dword [eax + edx]
xor ecx, 0
xor ecx, dword [ebp - 0x248c]
mov dword [ebp - 0x248c], ecx
mov dword [ebp - 0x2660], 0
cmp dword [ebp - 0x2660], 0
jne 0x1007fb5d
mov edx, dword [ebp - 0x2784]
sub edx, 1
mov dword [ebp - 0x2784], edx
jmp 0x1007fa94
cmp dword [ebp - 0x2784], 0
jbe 0x1007fab4
lea ecx, [ebp - 0x2664]
call fcn.1001a0b0
and eax, 0x3ff0000
mov dword [0x4073524], eax
jmp 0x1007fac7
cmp dword [ebp - 0x2784], 0
jne 0x1007fac7
mov dword [0x4073524], 0
push 0x40
push 0x2000
mov ecx, dword [ebp - 0x2788]
push ecx
mov edx, dword [0x4073524]
push edx
call dword [0x40491b0]
mov dword [ebp - 0x2660], eax
cmp dword [ebp - 0x2660], 0
je 0x1007fb58
push 0x40
push 0x1000
mov eax, dword [ebp - 0x2788]
push eax
mov ecx, dword [0x4073524]
push ecx
call dword [0x40491b0]
mov dword [ebp - 0x2660], eax
cmp dword [ebp - 0x2660], 0
je 0x1007fb58
mov edx, dword [ebp - 0x2660]
mov dword [0x4073524], edx
mov eax, dword [ebp - 0x2660]
cmp eax, dword [ebp - 0x2598]
jbe 0x1007fb58
mov ecx, dword [ebp - 0x2598]
add ecx, dword [ebp - 0x2618]
cmp dword [ebp - 0x2660], ecx
jae 0x1007fb58
mov edx, dword [ebp - 0x2788]
shr edx, 2
mov dword [ebp - 0x2788], edx
jmp 0x1007fa4e
call fcn.10086290
test eax, eax
je 0x1007fb74
mov eax, dword [ebp - 0x2788]
shr eax, 1
mov dword [ebp - 0x2788], eax
mov ecx, 1
test ecx, ecx
je 0x1007fc07
cmp dword [ebp - 0x2594], 0xffff
jae 0x1007fb99
mov dword [ebp - 0x5490], 0xffff
jmp 0x1007fba5
mov edx, dword [ebp - 0x2594]
mov dword [ebp - 0x5490], edx
mov eax, dword [ebp - 0x5490]
mov dword [ebp - 0x2794], eax
push 0
mov ecx, dword [ebp - 0x248c]
push ecx
lea edx, [ebp - 0x2794]
push edx
mov eax, dword [ebp - 0x2660]
push eax
mov ecx, dword [0x4073510]
push ecx
call fcn.10033440
add esp, 0x14
mov dword [0x4073510], eax
cmp dword [0x4073510], 0
je 0x1007fbee
cmp dword [ebp - 0x2794], 0
jne 0x1007fbf0
jmp 0x1007fc07
mov edx, dword [ebp - 0x2660]
add edx, dword [ebp - 0x2794]
mov dword [ebp - 0x2660], edx
jmp 0x1007fb74
cmp dword [0x4073510], 0
jne 0x1007fc36
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov dword [ecx], 0
push 0x404f9d4
mov edx, dword [ebp + 8]
mov eax, dword [edx + 4]
push eax
call fcn.1008fec0
add esp, 8
xor eax, eax
jmp 0x100824f5
mov ecx, 2
shl ecx, 2
mov edx, dword [0x406931c]
mov eax, dword [0x406931c]
mov esi, dword [0x406931c]
mov ebx, dword [esi + 0x7c]
xor ebx, dword [eax + 0x70]
xor ebx, dword [edx + ecx]
and ebx, 0x40
neg ebx
sbb ebx, ebx
neg ebx
movzx ecx, bl
test ecx, ecx
je 0x1007fc89
push 0x100
lea edx, [ebp - 0x2774]
push edx
mov eax, dword [0x4064fa0]
push eax
call fcn.1008f380
add esp, 0xc
push eax
call dword [0x404924c]
call fcn.10086290
neg eax
sbb eax, eax
and eax, 2
add eax, 1
mov ecx, dword [0x4073510]
imul eax, dword [ecx]
mov dword [ebp - 0x2670], eax
mov edx, dword [0x4073510]
add edx, 4
mov dword [0x4073510], edx
mov eax, dword [ebp - 0x2670]
imul eax, eax, 3
lea ecx, [eax*4 + 0x10000]
mov dword [ebp - 0x277c], ecx
cmp dword [ebp - 0x277c], 0xffff
jae 0x1007fce4
mov dword [ebp - 0x5494], 0xffff
jmp 0x1007fcf0
mov edx, dword [ebp - 0x277c]
mov dword [ebp - 0x5494], edx
mov eax, dword [ebp - 0x5494]
push eax
call fcn.1008fff0
add esp, 4
mov dword [ebp - 0x5198], eax
mov ecx, dword [ebp - 0x5198]
mov dword [ebp - 0x278c], ecx
mov edx, dword [ebp - 0x278c]
mov dword [ebp - 0x2778], edx
mov eax, 1
test eax, eax
je 0x1007fdaf
cmp dword [ebp - 0x277c], 0xffff
jae 0x1007fd42
mov dword [ebp - 0x5498], 0xffff
jmp 0x1007fd4e
mov ecx, dword [ebp - 0x277c]
mov dword [ebp - 0x5498], ecx
mov edx, dword [ebp - 0x5498]
mov dword [ebp - 0x2798], edx
push 0
mov eax, dword [ebp - 0x248c]
push eax
lea ecx, [ebp - 0x2798]
push ecx
mov edx, dword [ebp - 0x2778]
push edx
mov eax, dword [0x4073510]
push eax
call fcn.10033440
add esp, 0x14
mov dword [0x4073510], eax
cmp dword [0x4073510], 0
je 0x1007fd96
cmp dword [ebp - 0x2798], 0
jne 0x1007fd98
jmp 0x1007fdaf
mov ecx, dword [ebp - 0x2778]
add ecx, dword [ebp - 0x2798]
mov dword [ebp - 0x2778], ecx
jmp 0x1007fd1d
cmp dword [0x4073510], 0
jne 0x1007fdde
mov edx, dword [ebp + 8]
mov eax, dword [edx]
mov dword [eax], 0
push 0x404f9c4
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 4]
push edx
call fcn.1008fec0
add esp, 8
xor eax, eax
jmp 0x100824f5
call dword [0x4049334]
mov dword [ebp - 0x266c], eax
mov eax, dword [ebp - 0x278c]
mov dword [ebp - 0x2668], eax
mov esi, dword [ebp - 0x2670]
imul esi, esi, 3
call fcn.10086290
neg eax
sbb eax, eax
and eax, 2
add eax, 1
imul esi, eax
mov ecx, dword [ebp - 0x2668]
lea edx, [ecx + esi*4]
mov dword [ebp - 0x2790], edx
mov eax, dword [ebp - 0x2670]
lea eax, [eax*4 + 4]
xor ecx, ecx
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.1008fff0
add esp, 4
mov dword [ebp - 0x519c], eax
mov eax, dword [ebp - 0x519c]
mov dword [ebp - 0x25b0], eax
mov ecx, dword [ebp - 0x25b0]
mov dword [ebp - 0x2780], ecx
mov edx, dword [ebp - 0x2668]
cmp edx, dword [ebp - 0x2790]
jae 0x1007ff9b
mov eax, dword [ebp - 0x2668]
mov ecx, dword [eax]
mov dword [ebp - 0x27a0], ecx
mov edx, dword [ebp - 0x2668]
add edx, 4
mov dword [ebp - 0x2668], edx
mov eax, dword [ebp - 0x2668]
mov ecx, dword [eax]
mov dword [ebp - 0x27a4], ecx
mov edx, dword [ebp - 0x2668]
add edx, 4
mov dword [ebp - 0x2668], edx
mov eax, dword [ebp - 0x2668]
mov ecx, dword [eax]
mov dword [ebp - 0x279c], ecx
mov edx, dword [ebp - 0x2668]
add edx, 4
mov dword [ebp - 0x2668], edx
mov eax, dword [0x4073524]
add eax, dword [ebp - 0x27a4]
mov ecx, dword [ebp - 0x27a0]
mov edx, dword [ebp - 0x2598]
lea ecx, [edx + ecx + 4]
sub eax, ecx
mov dword [ebp - 0x27a8], eax
mov edx, dword [ebp - 0x2598]
add edx, dword [ebp - 0x27a0]
mov eax, dword [ebp - 0x2780]
mov dword [eax], edx
mov ecx, dword [ebp - 0x2780]
add ecx, 4
mov dword [ebp - 0x2780], ecx
mov edx, dword [ebp - 0x2780]
mov eax, dword [ebp - 0x27a8]
mov dword [edx], eax
mov ecx, dword [ebp - 0x2780]
add ecx, 4
mov dword [ebp - 0x2780], ecx
mov edx, dword [ebp - 0x27a0]
mov eax, dword [ebp - 0x2598]
lea ecx, [eax + edx + 4]
mov edx, dword [ebp - 0x279c]
mov eax, dword [0x4073524]
lea edx, [eax + edx + 4]
sub ecx, edx
mov dword [ebp - 0x27a8], ecx
mov eax, dword [0x4073524]
add eax, dword [ebp - 0x279c]
mov ecx, dword [ebp - 0x2780]
mov dword [ecx], eax
mov edx, dword [ebp - 0x2780]
add edx, 4
mov dword [ebp - 0x2780], edx
mov eax, dword [ebp - 0x2780]
mov ecx, dword [ebp - 0x27a8]
mov dword [eax], ecx
mov edx, dword [ebp - 0x2780]
add edx, 4
mov dword [ebp - 0x2780], edx
jmp 0x1007fe64
mov eax, dword [ebp - 0x2780]
mov dword [eax], 0
mov ecx, dword [ebp - 0x2780]
add ecx, 4
mov dword [ebp - 0x2780], ecx
call dword [0x4049334]
mov edx, dword [ebp - 0x278c]
mov dword [ebp - 0x51a0], edx
mov eax, dword [ebp - 0x51a0]
push eax
call fcn.1008ffeb
add esp, 4
mov dword [0x4064a6c], 0x404f9bc
mov dword [ebp - 0x2614], 0x3fc1f50
mov dword [ebp - 0x2610], 0x3fc1e70
mov dword [ebp - 0x260c], 0x3fc1ea0
mov dword [ebp - 0x2608], 0x3fc1f90
mov dword [ebp - 0x2604], 0x3fc2010
mov dword [ebp - 0x2600], 0x3fc1ff0
mov dword [ebp - 0x25fc], 0x3fc2000
mov dword [ebp - 0x25f8], 0x3fc1ec0
mov dword [ebp - 0x25f4], 0x3fc1f00
mov dword [ebp - 0x25f0], 0x3fc1f40
mov dword [ebp - 0x25ec], 0x3fc1f50
mov dword [ebp - 0x25e8], 0x3fc1e70
mov dword [ebp - 0x25e4], 0x3fc1ea0
mov dword [ebp - 0x25e0], 0x3fc1f90
mov dword [ebp - 0x25dc], 0x3fc1ff0
mov dword [ebp - 0x25d8], 0x3fc2000
mov dword [ebp - 0x25d4], 0x3fc2010
mov dword [ebp - 0x25d0], 0x3fc1ec0
mov dword [ebp - 0x25cc], 0x3fc1f00
mov dword [ebp - 0x25c8], 0x3fc2020
mov dword [ebp - 0x2630], 0
mov dword [ebp - 0x2590], 0
mov dword [ebp - 0x265c], 0
mov dword [ebp - 0x2658], 0
mov ecx, 0x25
shl ecx, 2
mov edx, dword [0x406931c]
mov eax, dword [0x406931c]
mov esi, dword [0x406931c]
mov ebx, dword [esi + 0x7c]
xor ebx, dword [eax + 0x70]
xor ebx, dword [edx + ecx]
and ebx, 0x400000
neg ebx
sbb ebx, ebx
neg ebx
movzx ecx, bl
test ecx, ecx
je 0x100803d9
mov dword [0x4064a6c], 0x404f9b4
mov edx, dword [0x4073510]
mov eax, dword [edx]
mov dword [ebp - 0x2590], eax
mov ecx, dword [0x4073510]
add ecx, 4
mov dword [0x4073510], ecx
call fcn.10086290
mov ecx, eax
neg ecx
sbb ecx, ecx
neg ecx
add ecx, 1
mov edx, dword [0x4073510]
mov eax, dword [edx]
xor edx, edx
div ecx
mov dword [ebp - 0x265c], eax
mov eax, dword [0x4073510]
add eax, 4
mov dword [0x4073510], eax
xor ecx, ecx
mov eax, dword [ebp - 0x265c]
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.1008fff0
add esp, 4
mov dword [ebp - 0x51a4], eax
mov eax, dword [ebp - 0x51a4]
mov dword [ebp - 0x2630], eax
push 0x14
call fcn.1008f7ee
add esp, 4
mov dword [ebp - 0x51ac], eax
mov dword [ebp - 4], 1
cmp dword [ebp - 0x51ac], 0
je 0x10080204
mov ecx, dword [0x4073834]
mov dword [ebp - 0x5304], ecx
mov edx, dword [ebp - 0x51ac]
mov eax, dword [ebp - 0x2630]
mov dword [edx], eax
mov ecx, dword [ebp - 0x265c]
shl ecx, 2
mov edx, dword [ebp - 0x51ac]
mov dword [edx + 4], ecx
mov eax, dword [ebp - 0x51ac]
mov byte [eax + 0xc], 0
mov ecx, dword [ebp - 0x51ac]
mov edx, dword [ebp - 0x5304]
mov dword [ecx + 0x10], edx
mov eax, dword [ebp - 0x51ac]
mov dword [ebp - 0x549c], eax
jmp 0x1008020e
mov dword [ebp - 0x549c], 0
mov ecx, dword [ebp - 0x549c]
mov dword [ebp - 0x51a8], ecx
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x51a8]
mov dword [0x4073834], edx
mov eax, dword [0x4073834]
mov byte [eax + 0xc], 1
xor ecx, ecx
shl ecx, 2
mov edx, dword [0x406931c]
mov eax, dword [edx + ecx]
xor eax, 0
mov dword [ebp - 0x5308], eax
mov ecx, dword [ebp - 0x5308]
mov dword [ebp - 0x27b8], ecx
mov dword [ebp - 0x27bc], 0
jmp 0x10080274
mov edx, dword [ebp - 0x27bc]
add edx, 1
mov dword [ebp - 0x27bc], edx
mov eax, dword [ebp - 0x27bc]
cmp eax, dword [ebp - 0x265c]
jae 0x100802b9
push 0x14
lea ecx, [ebp - 0x27b8]
call fcn.1000c5f0
mov esi, eax
push 0x100
lea ecx, [ebp - 0x27b8]
call fcn.1000c5f0
add eax, dword [ebp + esi*4 - 0x2614]
mov ecx, dword [ebp - 0x27bc]
mov edx, dword [ebp - 0x2630]
mov dword [edx + ecx*4], eax
jmp 0x10080265
mov eax, dword [0x4073510]
mov ecx, dword [eax]
mov dword [ebp - 0x27b0], ecx
mov edx, dword [0x4073510]
add edx, 4
mov dword [0x4073510], edx
mov eax, dword [ebp - 0x27b0]
shl eax, 2
mov dword [ebp - 0x27b4], eax
mov ecx, dword [ebp - 0x27b4]
add ecx, 0x10000
push ecx
call fcn.1008fff0
add esp, 4
mov dword [ebp - 0x51b0], eax
mov edx, dword [ebp - 0x51b0]
mov dword [ebp - 0x2658], edx
mov eax, dword [ebp - 0x2658]
mov dword [ebp - 0x27ac], eax
mov ecx, 1
test ecx, ecx
je 0x100803aa
cmp dword [ebp - 0x27b4], 0xffff
jae 0x1008033c
mov dword [ebp - 0x54a0], 0xffff
jmp 0x10080348
mov edx, dword [ebp - 0x27b4]
mov dword [ebp - 0x54a0], edx
mov eax, dword [ebp - 0x54a0]
mov dword [ebp - 0x27c0], eax
push 0
mov ecx, dword [ebp - 0x248c]
push ecx
lea edx, [ebp - 0x27c0]
push edx
mov eax, dword [ebp - 0x27ac]
push eax
mov ecx, dword [0x4073510]
push ecx
call fcn.10033440
add esp, 0x14
mov dword [0x4073510], eax
cmp dword [0x4073510], 0
je 0x10080391
cmp dword [ebp - 0x27c0], 0
jne 0x10080393
jmp 0x100803aa
mov edx, dword [ebp - 0x27ac]
add edx, dword [ebp - 0x27c0]
mov dword [ebp - 0x27ac], edx
jmp 0x10080317
cmp dword [0x4073510], 0
jne 0x100803d9
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov dword [ecx], 0
push 0x404f9a4
mov edx, dword [ebp + 8]
mov eax, dword [edx + 4]
push eax
call fcn.1008fec0
add esp, 8
xor eax, eax
jmp 0x100824f5
mov dword [0x4064a6c], 0x404f9b4
mov ecx, 0x25
shl ecx, 2
mov edx, dword [0x406931c]
mov eax, dword [0x406931c]
mov esi, dword [0x406931c]
mov ebx, dword [esi + 0x7c]
xor ebx, dword [eax + 0x70]
xor ebx, dword [edx + ecx]
and ebx, 0x200
neg ebx
sbb ebx, ebx
neg ebx
movzx ecx, bl
test ecx, ecx
je 0x1008051d
mov dword [0x4064a6c], 0x404f99c
call fcn.10086290
mov ecx, eax
neg ecx
sbb ecx, ecx
and ecx, 3
add ecx, 1
mov edx, dword [0x4073510]
mov eax, dword [edx]
xor edx, edx
div ecx
mov dword [0x4073830], eax
mov eax, dword [0x4073510]
add eax, 4
mov dword [0x4073510], eax
mov ecx, dword [0x4073830]
add ecx, 0x10000
push ecx
call fcn.1008fff0
add esp, 4
mov dword [ebp - 0x51b4], eax
mov edx, dword [ebp - 0x51b4]
mov dword [0x407352c], edx
mov eax, dword [0x407352c]
mov dword [ebp - 0x27c4], eax
mov ecx, 1
test ecx, ecx
je 0x1008051d
mov edx, dword [0x4073830]
add edx, 0x10000
mov dword [ebp - 0x27c8], edx
push 0
push 0
lea eax, [ebp - 0x27c8]
push eax
mov ecx, dword [ebp - 0x27c4]
push ecx
mov edx, dword [0x4073510]
push edx
call fcn.10033440
add esp, 0x14
mov dword [0x4073510], eax
cmp dword [0x4073510], 0
jne 0x100804fb
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov dword [ecx], 0
push 0x404f98c
mov edx, dword [ebp + 8]
mov eax, dword [edx + 4]
push eax
call fcn.1008fec0
add esp, 8
xor eax, eax
jmp 0x100824f5
cmp dword [ebp - 0x27c8], 0
jne 0x10080506
jmp 0x1008051d
mov ecx, dword [ebp - 0x27c4]
add ecx, dword [ebp - 0x27c8]
mov dword [ebp - 0x27c4], ecx
jmp 0x10080487
mov dword [0x4064a6c], 0x404f984
mov edx, dword [0x406b22c]
mov dword [ebp - 0x532c], edx
mov eax, dword [ebp - 0x532c]
mov ecx, dword [eax + 0x634]
mov dword [ebp - 0x2634], ecx
call fcn.10086290
test eax, eax
je 0x10080569
mov edx, 0x24
shl edx, 2
mov eax, dword [0x406931c]
mov ecx, dword [eax + edx]
xor ecx, 0
mov dword [ebp - 0x54a4], ecx
jmp 0x10080579
mov ecx, 0x4068cd0
call fcn.10082590
mov dword [ebp - 0x54a4], eax
mov edx, 0xa
shl edx, 2
mov eax, dword [0x406931c]
mov ecx, dword [eax + edx]
xor ecx, 0
xor ecx, dword [ebp - 0x2634]
xor ecx, dword [ebp - 0x54a4]
mov dword [ebp - 0x25ac], ecx
mov edx, dword [0x406b22c]
mov dword [ebp - 0x5330], edx
mov eax, dword [ebp - 0x5330]
mov ecx, dword [eax + 0x634]
mov dword [ebp - 0x5334], ecx
mov edx, dword [ebp - 0x5334]
push edx
push 0x404db64
lea eax, [ebp - 0x258c]
push eax
call fcn.1008fd7e
add esp, 0xc
lea ecx, [ebp - 0x258c]
push ecx
lea ecx, [ebp - 0x51d0]
call fcn.1001f380
mov dword [ebp - 4], 2
push 0x20
lea edx, [ebp - 0x51d0]
push edx
call fcn.1008ee50
add esp, 8
mov dword [ebp - 0x25b8], eax
mov dword [ebp - 4], 0xffffffff
push 0
push 1
lea ecx, [ebp - 0x51d0]
call fcn.1001f770
mov dword [0x4064a6c], 0x404f97c
call fcn.1008ea00
mov ecx, 0x18
shl ecx, 2
mov edx, dword [0x406931c]
mov eax, dword [edx + ecx]
xor eax, 0
mov dword [ebp - 0x5380], eax
mov ecx, 0x1e
shl ecx, 2
mov edx, dword [0x406931c]
mov eax, dword [edx + ecx]
xor eax, 0
xor eax, dword [ebp - 0x5380]
mov dword [ebp - 0x5384], eax
mov ecx, dword [ebp - 0x5384]
mov dword [0x4069308], ecx
mov edx, 1
test edx, edx
je 0x10080c2b
mov eax, dword [0x4069308]
mov dword [ebp - 0x5388], eax
mov ecx, dword [0x4073510]
mov edx, dword [ecx]
xor edx, dword [ebp - 0x5388]
mov dword [ebp - 0x27e0], edx
mov eax, dword [0x4073510]
add eax, 4
mov dword [0x4073510], eax
cmp dword [ebp - 0x27e0], 0
jne 0x100806b9
jmp 0x10080c2b
mov ecx, dword [ebp - 0x27e0]
and ecx, 0x80000000
je 0x100806e5
mov edx, dword [ebp - 0x27e0]
and edx, 0x7fffffff
mov eax, dword [ebp - 0x25c4]
add edx, dword [eax + 0x88]
mov dword [ebp - 0x27e0], edx
mov ecx, dword [0x4069308]
mov dword [ebp - 0x538c], ecx
mov edx, dword [0x4073510]
mov eax, dword [edx]
xor eax, dword [ebp - 0x538c]
mov dword [ebp - 0x27d8], eax
mov ecx, dword [0x4073510]
add ecx, 4
mov dword [0x4073510], ecx
mov edx, dword [ebp - 0x27d8]
add edx, 0x10000
push edx
call fcn.1008fff0
add esp, 4
mov dword [ebp - 0x51d4], eax
mov eax, dword [ebp - 0x51d4]
mov dword [ebp - 0x27dc], eax
mov ecx, dword [ebp - 0x27dc]
mov dword [ebp - 0x27d0], ecx
mov edx, dword [ebp - 0x27d8]
add edx, 0x10000
push edx
push 0
mov eax, dword [ebp - 0x27dc]
push eax
call fcn.1008f860
add esp, 0xc
mov ecx, 1
test ecx, ecx
je 0x10080805
mov edx, dword [ebp - 0x27d8]
add edx, 0x10000
mov dword [ebp - 0x27e4], edx
mov eax, dword [ebp - 0x25b8]
push eax
mov ecx, dword [ebp - 0x25ac]
push ecx
lea edx, [ebp - 0x27e4]
push edx
mov eax, dword [ebp - 0x27d0]
push eax
mov ecx, dword [0x4073510]
push ecx
call fcn.10033440
add esp, 0x14
mov dword [0x4073510], eax
cmp dword [0x4073510], 0
jne 0x100807e3
mov edx, dword [ebp + 8]
mov eax, dword [edx]
mov dword [eax], 0
push 0x404f96c
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 4]
push edx
call fcn.1008fec0
add esp, 8
xor eax, eax
jmp 0x100824f5
cmp dword [ebp - 0x27e4], 0
jne 0x100807ee
jmp 0x10080805
mov eax, dword [ebp - 0x27d0]
add eax, dword [ebp - 0x27e4]
mov dword [ebp - 0x27d0], eax
jmp 0x10080765
mov ecx, dword [ebp - 0x27d0]
sub ecx, dword [ebp - 0x27dc]
mov dword [ebp - 0x27d4], ecx
mov edx, dword [ebp - 0x27d4]
cmp edx, dword [ebp - 0x27d8]
jae 0x10080843
mov eax, dword [ebp - 0x27d8]
sub eax, dword [ebp - 0x27d4]
push eax
push 0
mov ecx, dword [ebp - 0x27d0]
push ecx
call fcn.1008f860
add esp, 0xc
cmp dword [ebp - 0x25b0], 0
je 0x100809e0
mov edx, dword [ebp - 0x2598]
add edx, dword [ebp - 0x27e0]
mov eax, dword [ebp - 0x25b0]
cmp dword [eax], edx
jb 0x100809e0
mov ecx, dword [ebp - 0x2598]
add ecx, dword [ebp - 0x27e0]
add ecx, dword [ebp - 0x27d8]
mov edx, dword [ebp - 0x25b0]
cmp dword [edx], ecx
jae 0x100809e0
mov eax, 0x25
shl eax, 2
mov ecx, dword [0x406931c]
mov edx, dword [0x406931c]
mov esi, dword [0x406931c]
mov ebx, dword [esi + 0x7c]
xor ebx, dword [edx + 0x70]
xor ebx, dword [ecx + eax]
shr ebx, 0x18
mov byte [ebp - 0x27ed], bl
movzx eax, byte [ebp - 0x27ed]
shl eax, 0x18
movzx ecx, byte [ebp - 0x27ed]
shl ecx, 0x10
or eax, ecx
movzx edx, byte [ebp - 0x27ed]
shl edx, 8
or eax, edx
movzx ecx, byte [ebp - 0x27ed]
or eax, ecx
mov dword [ebp - 0x27ec], eax
mov edx, dword [ebp - 0x25b0]
mov dword [ebp - 0x27e8], edx
mov eax, dword [ebp - 0x27e8]
cmp dword [eax], 0
je 0x100809e0
mov ecx, dword [ebp - 0x27e8]
mov edx, dword [ecx]
mov dword [ebp - 0x27f4], edx
mov eax, dword [ebp - 0x27e8]
add eax, 4
mov dword [ebp - 0x27e8], eax
mov ecx, dword [ebp - 0x27e8]
mov edx, dword [ecx]
mov dword [ebp - 0x27f8], edx
mov eax, dword [ebp - 0x27e8]
add eax, 4
mov dword [ebp - 0x27e8], eax
mov ecx, dword [ebp - 0x2598]
add ecx, dword [ebp - 0x27e0]
cmp dword [ebp - 0x27f4], ecx
jbe 0x100809cd
mov edx, dword [ebp - 0x2598]
add edx, dword [ebp - 0x27e0]
add edx, dword [ebp - 0x27d8]
cmp dword [ebp - 0x27f4], edx
jae 0x100809cd
mov eax, dword [ebp - 0x2598]
add eax, dword [ebp - 0x27e0]
mov ecx, dword [ebp - 0x27f4]
sub ecx, eax
mov dword [ebp - 0x27fc], ecx
mov dl, byte [0x40692f4]
mov byte [ebp - 0x538d], dl
movzx eax, byte [ebp - 0x538d]
test eax, eax
je 0x100809b7
mov ecx, dword [ebp - 0x27f8]
xor ecx, dword [ebp - 0x27ec]
mov edx, dword [ebp - 0x27dc]
add edx, dword [ebp - 0x27fc]
mov dword [edx], ecx
jmp 0x100809cb
mov eax, dword [ebp - 0x27dc]
add eax, dword [ebp - 0x27fc]
mov ecx, dword [ebp - 0x27f8]
mov dword [eax], ecx
jmp 0x100809db
mov edx, dword [ebp - 0x27f4]
mov eax, dword [ebp - 0x27f8]
mov dword [edx], eax
jmp 0x100808f3
mov ecx, dword [ebp - 0x27e0]
cmp ecx, dword [ebp - 0x20]
jb 0x10080b56
mov edx, dword [ebp - 0x27e0]
cmp edx, dword [ebp - 0x18]
jae 0x10080b56
mov al, byte [0x40692f4]
mov byte [ebp - 0x538e], al
movzx ecx, byte [ebp - 0x538e]
test ecx, ecx
je 0x10080b56
call fcn.10086290
mov dword [ebp - 0x2804], eax
mov edx, dword [ebp - 0x27dc]
mov dword [ebp - 0x27d0], edx
mov dword [ebp - 0x2800], 0
mov eax, dword [ebp - 0x27dc]
add eax, dword [ebp - 0x27d4]
cmp dword [ebp - 0x27d0], eax
jae 0x10080b56
mov ecx, dword [ebp - 0x2800]
and ecx, 0x80000007
jns 0x10080a64
dec ecx
or ecx, 0xfffffff8
inc ecx
movzx edx, byte [ecx + 0x404f41c]
mov eax, dword [0x406931c]
mov ecx, dword [eax + edx*4]
xor ecx, 0
mov dword [ebp - 0x5394], ecx
mov edx, dword [ebp - 0x2800]
and edx, 0x80000007
jns 0x10080a8f
dec edx
or edx, 0xfffffff8
inc edx
movzx eax, byte [edx + 0x404f41d]
mov ecx, dword [0x406931c]
mov edx, dword [ecx + eax*4]
xor edx, 0
mov dword [ebp - 0x5398], edx
mov eax, dword [ebp - 0x2800]
and eax, 0x80000007
jns 0x10080aba
dec eax
or eax, 0xfffffff8
inc eax
movzx ecx, byte [eax + 0x404f41e]
mov edx, dword [0x406931c]
mov eax, dword [edx + ecx*4]
xor eax, 0
mov dword [ebp - 0x539c], eax
push 0
mov esi, dword [ebp - 0x2800]
shl esi, 4
mov edi, dword [ebp - 0x5394]
xor edi, dword [ebp - 0x5398]
xor edi, dword [ebp - 0x539c]
mov eax, dword [ebp - 0x2800]
cdq
mov ecx, 0x1c
idiv ecx
mov ecx, edx
shr edi, cl
and edi, 0xf
add esi, edi
mov ecx, 0x4068cd0
call fcn.1007dfd0
mov edx, dword [0x4073520]
xor eax, dword [edx + esi*4]
xor eax, dword [ebp - 0x2804]
push eax
mov eax, dword [ebp - 0x27d0]
push eax
call fcn.10084320
add esp, 0xc
mov ecx, dword [ebp - 0x2800]
add ecx, 1
mov dword [ebp - 0x2800], ecx
mov edx, dword [ebp - 0x27d0]
add edx, 0x1000
mov dword [ebp - 0x27d0], edx
jmp 0x10080a39
mov eax, dword [ebp - 0x27e0]
and eax, 0xfff
jne 0x10080b93
mov ecx, dword [ebp - 0x27d8]
and ecx, 0xfff
je 0x10080b93
mov eax, dword [ebp - 0x27d8]
xor edx, edx
mov ecx, 0x1000
div ecx
mov eax, 0x1000
sub eax, edx
add eax, dword [ebp - 0x27d8]
mov dword [ebp - 0x27d8], eax
mov dword [ebp - 0x27cc], 4
lea ecx, [ebp - 0x27cc]
push ecx
push 4
mov edx, dword [ebp - 0x27d8]
push edx
mov eax, dword [ebp - 0x2598]
add eax, dword [ebp - 0x27e0]
push eax
call dword [0x4049154]
mov ecx, dword [ebp - 0x27d8]
push ecx
mov edx, dword [ebp - 0x27dc]
push edx
mov eax, dword [ebp - 0x2598]
add eax, dword [ebp - 0x27e0]
push eax
call fcn.1008f470
add esp, 0xc
lea ecx, [ebp - 0x27cc]
push ecx
mov edx, dword [ebp - 0x27cc]
push edx
mov eax, dword [ebp - 0x27d8]
push eax
mov ecx, dword [ebp - 0x2598]
add ecx, dword [ebp - 0x27e0]
push ecx
call dword [0x4049154]
mov edx, dword [ebp - 0x27dc]
mov dword [ebp - 0x51d8], edx
mov eax, dword [ebp - 0x51d8]
push eax
call fcn.1008ffeb
add esp, 4
jmp 0x10080672
mov dword [0x4069308], 0
cmp dword [ebp - 0x2594], 0
je 0x10080c75
lea ecx, [ebp - 0x2808]
push ecx
push 0x20
mov edx, dword [ebp - 0x2594]
push edx
mov eax, dword [0x4073524]
push eax
call dword [0x4049154]
mov ecx, dword [ebp - 0x25b0]
mov dword [ebp - 0x51dc], ecx
mov edx, dword [ebp - 0x51dc]
push edx
call fcn.1008ffeb
add esp, 4
mov dword [ebp - 0x264c], 0
lea eax, [ebp - 0x2654]
push eax
push 0x40149c0
call dword [0x4068934]
add esp, 8
mov ecx, 0x25
shl ecx, 2
mov edx, dword [0x406931c]
mov eax, dword [0x406931c]
mov esi, dword [0x406931c]
mov ebx, dword [esi + 0x7c]
xor ebx, dword [eax + 0x70]
xor ebx, dword [edx + ecx]
and ebx, 0x80
neg ebx
sbb ebx, ebx
neg ebx
movzx ecx, bl
test ecx, ecx
je 0x10080d21
mov edx, 0x25
shl edx, 2
mov eax, dword [0x406931c]
mov ecx, dword [0x406931c]
mov esi, dword [0x406931c]
mov ebx, dword [esi + 0x7c]
xor ebx, dword [ecx + 0x70]
xor ebx, dword [eax + edx]
and ebx, 0x10
neg ebx
sbb ebx, ebx
neg ebx
movzx edx, bl
test edx, edx
je 0x10080d21
mov dword [ebp - 0x28a4], 0x94
lea eax, [ebp - 0x28a4]
push eax
call dword [0x4049134]
cmp dword [ebp - 0x2894], 2
je 0x10080d21
cli
not esp
not esp
sti
mov dword [0x4064a6c], 0x404f964
mov ecx, dword [0x4073510]
mov edx, dword [ecx]
mov dword [ebp - 0x25a8], edx
mov eax, dword [0x4073510]
add eax, 4
mov dword [0x4073510], eax
call fcn.10086290
test eax, eax
je 0x10080d5f
mov ecx, dword [ebp - 0x25a8]
shr ecx, 1
mov dword [ebp - 0x54a8], ecx
jmp 0x10080d71
mov edx, dword [ebp - 0x25a8]
add edx, 0x10000
mov dword [ebp - 0x54a8], edx
mov eax, dword [ebp - 0x54a8]
push eax
call fcn.1008fff0
add esp, 4
mov dword [ebp - 0x51e0], eax
mov ecx, dword [ebp - 0x51e0]
mov dword [ebp - 0x2484], ecx
mov edx, 0x17
shl edx, 2
mov eax, dword [0x406931c]
mov ecx, dword [0x406931c]
mov esi, dword [0x406931c]
mov edi, dword [0x406931c]
mov edi, dword [edi + 0x60]
xor edi, dword [esi + 0x7c]
xor edi, dword [ecx + 0x78]
xor edi, dword [eax + edx]
mov dword [ebp - 0x25c0], edi
mov dword [0x4064a6c], 0x404f95c
mov ecx, 0x4068cd0
call fcn.10082520
mov esi, eax
xor esi, dword [ebp - 0x25c0]
call fcn.10086290
xor esi, eax
mov dword [ebp - 0x2648], esi
mov dword [0x4064a6c], 0x404f954
mov edx, dword [ebp - 0x2484]
mov dword [ebp - 0x2480], edx
mov eax, 1
test eax, eax
je 0x10080eb1
mov ecx, dword [ebp - 0x25a8]
add ecx, 0x10000
mov dword [ebp - 0x28a8], ecx
mov dword [0x4064a6c], 0x404f94c
push 0
mov edx, dword [ebp - 0x2648]
push edx
lea eax, [ebp - 0x28a8]
push eax
mov ecx, dword [ebp - 0x2480]
push ecx
mov edx, dword [0x4073510]
push edx
call fcn.10033440
add esp, 0x14
mov dword [0x4073510], eax
mov dword [0x4064a6c], 0x404f944
cmp dword [0x4073510], 0
jne 0x10080e8f
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov dword [ecx], 0
push 0x404f934
mov edx, dword [ebp + 8]
mov eax, dword [edx + 4]
push eax
call fcn.1008fec0
add esp, 8
xor eax, eax
jmp 0x100824f5
cmp dword [ebp - 0x28a8], 0
jne 0x10080e9a
jmp 0x10080eb1
mov ecx, dword [ebp - 0x2480]
add ecx, dword [ebp - 0x28a8]
mov dword [ebp - 0x2480], ecx
jmp 0x10080e02
mov dword [0x4064a6c], 0x404f92c
mov dword [0x4064a6c], 0x404f924
mov dword [0x4064a6c], 0x404f91c
mov byte [ebp - 0x2641], 0
mov edx, 0x1a
shl edx, 2
mov eax, dword [0x406931c]
mov ecx, dword [eax + edx]
xor ecx, 0
mov dword [ebp - 0x53a0], ecx
mov edx, dword [ebp - 0x53a0]
mov dword [ebp - 0x25b4], edx
mov eax, 0x1f
shl eax, 2
mov ecx, dword [0x406931c]
mov edx, dword [ecx + eax]
xor edx, 0
imul edx, edx, 0xa
add edx, 1
mov dword [ebp - 0x53a4], edx
mov eax, dword [ebp - 0x53a4]
mov dword [ebp - 0x2640], eax
mov ecx, dword [ebp - 0x2484]
mov dword [ebp - 0x2480], ecx
mov dword [ebp - 0x2488], 0
mov dword [ebp - 0x25bc], 0
mov dword [ebp - 0x25a4], 0xffffffff
mov edx, 1
test edx, edx
je 0x1008193d
mov eax, dword [ebp - 0x2480]
mov dword [ebp - 0x29d0], eax
push 0
mov ecx, dword [ebp - 0x2480]
push ecx
call fcn.1008fcc0
add esp, 8
add eax, 1
mov dword [ebp - 0x2480], eax
mov edx, dword [ebp - 0x29d0]
movsx eax, byte [edx]
test eax, eax
jne 0x10080f96
jmp 0x1008193d
mov ecx, dword [ebp - 0x2480]
mov edx, dword [ecx]
mov dword [ebp - 0x29d4], edx
mov eax, dword [ebp - 0x2480]
add eax, 4
mov dword [ebp - 0x2480], eax
mov ecx, dword [ebp - 0x2480]
mov edx, dword [ecx]
mov dword [ebp - 0x28b4], edx
mov eax, dword [ebp - 0x2480]
add eax, 4
mov dword [ebp - 0x2480], eax
mov cl, byte [0x404b62d]
mov byte [ebp - 0x29cc], cl
push 0x103
push 0
lea edx, [ebp - 0x29cb]
push edx
call fcn.1008f860
add esp, 0xc
mov eax, 2
shl eax, 2
mov ecx, dword [0x406931c]
mov edx, dword [0x406931c]
mov esi, dword [0x406931c]
mov ebx, dword [esi + 0x7c]
xor ebx, dword [edx + 0x70]
xor ebx, dword [ecx + eax]
and ebx, 0x80
neg ebx
sbb ebx, ebx
neg ebx
movzx eax, bl
test eax, eax
je 0x10081055
push 0x404e77c
mov ecx, dword [ebp - 0x29d0]
push ecx
call fcn.10094f22
add esp, 8
test eax, eax
jne 0x10081055
mov edx, dword [ebp - 0x29d0]
push edx
call dword [0x40490a4]
mov dword [ebp - 0x28c0], eax
jmp 0x10081067
mov eax, dword [ebp - 0x29d0]
push eax
call fcn.10052010
mov dword [ebp - 0x28c0], eax
cmp dword [ebp - 0x28c0], 0
jne 0x1008111a
cmp dword [ebp - 0x28c0], 0
jne 0x100810dd
push 1
lea ecx, [ebp - 0x2adc]
push ecx
call fcn.100765a0
add esp, 8
push 0x5c
lea edx, [ebp - 0x2adc]
push edx
call fcn.10092320
add esp, 8
mov dword [ebp - 0x2ae0], eax
cmp dword [ebp - 0x2ae0], 0
je 0x100810dd
mov eax, dword [ebp - 0x29d0]
push eax
mov ecx, dword [ebp - 0x2ae0]
add ecx, 1
push ecx
call fcn.1008fec0
add esp, 8
push 8
push 0
lea edx, [ebp - 0x2adc]
push edx
call fcn.10052450
mov dword [ebp - 0x28c0], eax
cmp dword [ebp - 0x28c0], 0
jne 0x1008111a
push 1
lea eax, [ebp - 0x2adc]
push eax
call fcn.100765a0
add esp, 8
lea ecx, [ebp - 0x2adc]
push ecx
lea edx, [ebp - 0x29cc]
push edx
mov eax, dword [ebp - 0x29d0]
push eax
call fcn.10051a60
add esp, 0xc
mov dword [ebp - 0x28c0], eax
cmp dword [ebp - 0x28c0], 0
jne 0x1008117c
mov ecx, dword [ebp + 8]
mov edx, dword [ecx]
mov dword [edx], 3
movsx eax, byte [ebp - 0x29cc]
test eax, eax
je 0x10081147
lea ecx, [ebp - 0x29cc]
mov dword [ebp - 0x54ac], ecx
jmp 0x10081153
mov edx, dword [ebp - 0x29d0]
mov dword [ebp - 0x54ac], edx
call dword [0x4049354]
push eax
mov eax, dword [ebp - 0x54ac]
push eax
push 0x404f908
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 4]
push edx
call fcn.1008fd7e
add esp, 0x10
xor eax, eax
jmp 0x100824f5
mov eax, dword [ebp - 0x28c0]
push eax
call fcn.1004fb20
add esp, 4
mov dword [ebp - 0x28c4], 0
mov ecx, dword [0x4069334]
mov dword [ebp - 0x53a8], ecx
mov edx, dword [ebp - 0x28c0]
cmp edx, dword [ebp - 0x53a8]
jne 0x100811be
mov dword [ebp - 0x28c4], 0x4063e78
jmp 0x10081296
mov dword [ebp - 0x2ae4], 0
mov dword [ebp - 0x2ae8], 0x4063e3c
jmp 0x100811f2
mov eax, dword [ebp - 0x2ae8]
add eax, 0xc
mov dword [ebp - 0x2ae8], eax
mov ecx, dword [ebp - 0x2ae4]
add ecx, 1
mov dword [ebp - 0x2ae4], ecx
mov edx, dword [ebp - 0x2ae8]
cmp dword [edx], 0
je 0x10081296
mov eax, dword [ebp - 0x2ae8]
mov ecx, dword [eax + 8]
and ecx, 1
je 0x10081246
mov edx, 0x25
shl edx, 2
mov eax, dword [0x406931c]
mov ecx, dword [0x406931c]
mov esi, dword [0x406931c]
mov ebx, dword [esi + 0x7c]
xor ebx, dword [ecx + 0x70]
xor ebx, dword [eax + edx]
and ebx, 0x80
neg ebx
sbb ebx, ebx
neg ebx
movzx edx, bl
test edx, edx
je 0x10081246
jmp 0x100811d4
mov eax, dword [0x406931c]
mov ecx, dword [0x406931c]
mov edx, dword [0x406931c]
mov esi, dword [0x406931c]
mov esi, dword [esi + 0x60]
xor esi, dword [edx + 0x70]
xor esi, dword [ecx + 0x3c]
xor esi, dword [eax + 0x68]
mov eax, dword [ebp - 0x2ae4]
mov ecx, dword [0x406bca4]
xor esi, dword [ecx + eax*4]
cmp dword [ebp - 0x28c0], esi
jne 0x10081291
mov edx, dword [ebp - 0x2ae8]
mov eax, dword [edx + 4]
mov dword [ebp - 0x28c4], eax
jmp 0x10081296
jmp 0x100811d4
mov byte [ebp - 0x28b5], 0
cmp dword [ebp - 0x2630], 0
jne 0x100812da
mov cl, byte [0x40692f4]
mov byte [ebp - 0x53a9], cl
movzx edx, byte [ebp - 0x53a9]
test edx, edx
je 0x100812da
mov eax, dword [ebp - 0x29d4]
cmp eax, dword [ebp - 0x20]
jb 0x100812da
mov ecx, dword [ebp - 0x29d4]
cmp ecx, dword [ebp - 0x18]
jae 0x100812da
mov byte [ebp - 0x28b5], 1
mov edx, dword [ebp - 0x28b4]
add edx, 1
mov dword [ebp - 0x28b4], edx
cmp dword [ebp - 0x2630], 0
je 0x1008133f
mov eax, dword [ebp - 0x29d4]
sub eax, dword [ebp - 0x2590]
shr eax, 2
mov dword [ebp - 0x2aec], eax
mov ecx, dword [ebp - 0x2aec]
mov edx, dword [ebp - 0x2630]
lea eax, [edx + ecx*4]
mov dword [ebp - 0x25bc], eax
mov ecx, dword [ebp - 0x25bc]
mov dword [ebp - 0x2488], ecx
mov edx, dword [ebp - 0x265c]
mov eax, dword [ebp - 0x2630]
lea ecx, [eax + edx*4]
mov dword [ebp - 0x25a4], ecx
jmp 0x100813a7
movzx edx, byte [ebp - 0x28b5]
test edx, edx
je 0x10081389
xor ecx, ecx
mov eax, dword [ebp - 0x28b4]
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.1008fff0
add esp, 4
mov dword [ebp - 0x51e4], eax
mov eax, dword [ebp - 0x51e4]
mov dword [ebp - 0x25bc], eax
mov ecx, dword [ebp - 0x25bc]
mov dword [ebp - 0x2488], ecx
jmp 0x100813a7
mov edx, dword [ebp - 0x2598]
add edx, dword [ebp - 0x29d4]
mov dword [ebp - 0x2488], edx
mov eax, dword [ebp - 0x2488]
mov dword [ebp - 0x25bc], eax
cmp dword [ebp - 0x2630], 0
jne 0x1008148a
lea ecx, [ebp - 0x28b0]
push ecx
push 4
mov edx, dword [ebp - 0x28b4]
shl edx, 2
push edx
mov eax, dword [ebp - 0x2598]
add eax, dword [ebp - 0x29d4]
push eax
call dword [0x4049154]
push 0x14
call fcn.1008f7ee
add esp, 4
mov dword [ebp - 0x51ec], eax
mov dword [ebp - 4], 3
cmp dword [ebp - 0x51ec], 0
je 0x10081453
mov ecx, dword [0x4073834]
mov dword [ebp - 0x53b0], ecx
mov edx, dword [ebp - 0x2598]
add edx, dword [ebp - 0x29d4]
mov eax, dword [ebp - 0x51ec]
mov dword [eax], edx
mov ecx, dword [ebp - 0x28b4]
shl ecx, 2
mov edx, dword [ebp - 0x51ec]
mov dword [edx + 4], ecx
mov eax, dword [ebp - 0x51ec]
mov byte [eax + 0xc], 0
mov ecx, dword [ebp - 0x51ec]
mov edx, dword [ebp - 0x53b0]
mov dword [ecx + 0x10], edx
mov eax, dword [ebp - 0x51ec]
mov dword [ebp - 0x54b0], eax
jmp 0x1008145d
mov dword [ebp - 0x54b0], 0
mov ecx, dword [ebp - 0x54b0]
mov dword [ebp - 0x51e8], ecx
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x51e8]
mov dword [0x4073834], edx
mov eax, dword [0x4073834]
mov ecx, dword [ebp - 0x28b0]
mov dword [eax + 8], ecx
mov dword [ebp - 0x28ac], 0
call dword [0x4049334]
mov dword [ebp - 0x28bc], eax
mov edx, 1
test edx, edx
je 0x10081873
mov eax, dword [ebp - 0x2480]
mov cx, word [eax]
mov word [ebp - 0x2af0], cx
mov edx, dword [ebp - 0x2480]
add edx, 2
mov dword [ebp - 0x2480], edx
movzx eax, word [ebp - 0x2af0]
push eax
mov ecx, dword [ebp - 0x2480]
push ecx
lea edx, [ebp - 0x32f4]
push edx
call fcn.1008f470
add esp, 0xc
movzx eax, word [ebp - 0x2af0]
add eax, dword [ebp - 0x2480]
mov dword [ebp - 0x2480], eax
mov word [ebp - 0x3b00], 0
mov cl, byte [0x404b62d]
mov byte [ebp - 0x3afc], cl
push 0x7ff
push 0
lea edx, [ebp - 0x3afb]
push edx
call fcn.1008f860
add esp, 0xc
movzx eax, word [ebp - 0x2af0]
test eax, eax
je 0x100815a4
lea ecx, [ebp - 0x2640]
call fcn.1001a0b0
mov dword [ebp - 0x3b04], eax
push 0
movzx ecx, word [ebp - 0x2af0]
push ecx
lea edx, [ebp - 0x32f4]
push edx
mov eax, dword [ebp - 0x3b04]
push eax
call fcn.1008edd0
add esp, 0x10
movzx ecx, byte [ebp - 0x32f4]
cmp ecx, 0xff
jne 0x10081583
mov dx, word [ebp - 0x32f3]
mov word [ebp - 0x3b00], dx
jmp 0x100815a4
movsx eax, byte [ebp - 0x32f4]
test eax, eax
je 0x100815a4
lea ecx, [ebp - 0x32f4]
push ecx
lea edx, [ebp - 0x3afc]
push edx
call fcn.1008fec0
add esp, 8
mov dword [ebp - 0x32f8], 0
movzx eax, word [ebp - 0x3b00]
test eax, eax
je 0x10081627
cmp dword [ebp - 0x28c4], 0
je 0x10081613
mov ecx, dword [ebp - 0x28c4]
mov dword [ebp - 0x3b08], ecx
jmp 0x100815df
mov edx, dword [ebp - 0x3b08]
add edx, 0xc
mov dword [ebp - 0x3b08], edx
mov eax, dword [ebp - 0x3b08]
cmp dword [eax + 8], 0
je 0x10081613
movzx ecx, word [ebp - 0x3b00]
mov edx, dword [ebp - 0x3b08]
movzx eax, word [edx + 4]
cmp ecx, eax
jne 0x10081611
mov ecx, dword [ebp - 0x3b08]
mov edx, dword [ecx + 8]
mov dword [ebp - 0x32f8], edx
jmp 0x10081613
jmp 0x100815d0
mov eax, dword [ebp - 0x28ac]
add eax, 1
mov dword [ebp - 0x28ac], eax
jmp 0x10081701
movsx ecx, byte [ebp - 0x3afc]
test ecx, ecx
je 0x100816c3
cmp dword [ebp - 0x28c4], 0
je 0x100816b2
mov edx, dword [ebp - 0x28c4]
mov dword [ebp - 0x3b0c], edx
jmp 0x1008165c
mov eax, dword [ebp - 0x3b0c]
add eax, 0xc
mov dword [ebp - 0x3b0c], eax
mov ecx, dword [ebp - 0x3b0c]
cmp dword [ecx + 8], 0
je 0x100816b2
push 0x100
lea edx, [ebp - 0x3c0c]
push edx
mov eax, dword [ebp - 0x3b0c]
mov ecx, dword [eax]
push ecx
call fcn.1008f380
add esp, 0xc
lea edx, [ebp - 0x3c0c]
push edx
lea eax, [ebp - 0x3afc]
push eax
call fcn.10094f22
add esp, 8
test eax, eax
jne 0x100816b0
mov ecx, dword [ebp - 0x3b0c]
mov edx, dword [ecx + 8]
mov dword [ebp - 0x32f8], edx
jmp 0x100816b2
jmp 0x1008164d
mov eax, dword [ebp - 0x28ac]
add eax, 1
mov dword [ebp - 0x28ac], eax
jmp 0x10081701
push 0x100
lea ecx, [ebp - 0x25b4]
call fcn.1000c5f0
movzx eax, al
cdq
mov ecx, 0x14
idiv ecx
mov eax, dword [ebp - 0x25bc]
mov ecx, dword [ebp + edx*4 - 0x2614]
mov dword [eax], ecx
mov edx, dword [ebp - 0x25bc]
add edx, 4
mov dword [ebp - 0x25bc], edx
jmp 0x10081873
cmp dword [ebp - 0x32f8], 0
jne 0x1008174e
movzx eax, word [ebp - 0x3b00]
test eax, eax
je 0x10081724
movzx ecx, word [ebp - 0x3b00]
mov dword [ebp - 0x54b4], ecx
jmp 0x10081730
lea edx, [ebp - 0x3afc]
mov dword [ebp - 0x54b4], edx
push 1
mov eax, dword [ebp - 0x54b4]
push eax
mov ecx, dword [ebp - 0x28c0]
push ecx
call fcn.10050ad0
add esp, 0xc
mov dword [ebp - 0x32f8], eax
cmp dword [ebp - 0x32f8], 0
jne 0x1008179b
movzx edx, word [ebp - 0x3b00]
test edx, edx
je 0x10081771
movzx eax, word [ebp - 0x3b00]
mov dword [ebp - 0x54b8], eax
jmp 0x1008177d
lea ecx, [ebp - 0x3afc]
mov dword [ebp - 0x54b8], ecx
push 0
mov edx, dword [ebp - 0x54b8]
push edx
mov eax, dword [ebp - 0x28c0]
push eax
call fcn.10050ad0
add esp, 0xc
mov dword [ebp - 0x32f8], eax
cmp dword [ebp - 0x32f8], 0
jne 0x10081843
movzx ecx, word [ebp - 0x3b00]
test ecx, ecx
je 0x10081808
call dword [0x4049354]
cmp eax, 0x32
jne 0x100817ca
mov dword [ebp - 0x32f8], 0x3fe0ac0
jmp 0x10081806
mov edx, dword [ebp + 8]
mov eax, dword [edx]
mov dword [eax], 3
call dword [0x4049354]
push eax
movzx ecx, word [ebp - 0x3b00]
push ecx
mov edx, dword [ebp - 0x29d0]
push edx
push 0x404f8e4
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 4]
push ecx
call fcn.1008fd7e
add esp, 0x14
xor eax, eax
jmp 0x100824f5
jmp 0x10081843
mov edx, dword [ebp + 8]
mov eax, dword [edx]
mov dword [eax], 3
call dword [0x4049354]
push eax
lea ecx, [ebp - 0x3afc]
push ecx
mov edx, dword [ebp - 0x29d0]
push edx
push 0x404f8c0
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 4]
push ecx
call fcn.1008fd7e
add esp, 0x14
xor eax, eax
jmp 0x100824f5
mov edx, dword [ebp - 0x25bc]
cmp edx, dword [ebp - 0x25a4]
jae 0x1008186e
mov eax, dword [ebp - 0x25bc]
mov ecx, dword [ebp - 0x32f8]
mov dword [eax], ecx
mov edx, dword [ebp - 0x25bc]
add edx, 4
mov dword [ebp - 0x25bc], edx
jmp 0x100814a0
call dword [0x4049334]
sub eax, dword [ebp - 0x28bc]
mov ecx, dword [ebp - 0x28ac]
imul ecx, ecx, 0x32
add ecx, 0x7d0
cmp eax, ecx
jbe 0x10081899
mov byte [ebp - 0x2641], 1
cmp dword [ebp - 0x2630], 0
jne 0x10081938
movzx edx, byte [ebp - 0x28b5]
test edx, edx
je 0x10081938
push 0
mov eax, dword [ebp - 0x28b4]
shl eax, 2
push eax
mov ecx, dword [ebp - 0x2598]
add ecx, dword [ebp - 0x29d4]
push ecx
call fcn.100843a0
add esp, 0xc
mov edx, dword [ebp - 0x28b4]
shl edx, 2
push edx
mov eax, dword [ebp - 0x2488]
push eax
mov ecx, dword [ebp - 0x2598]
add ecx, dword [ebp - 0x29d4]
push ecx
call fcn.1008f470
add esp, 0xc
push 1
mov edx, dword [ebp - 0x28b4]
shl edx, 2
push edx
mov eax, dword [ebp - 0x2598]
add eax, dword [ebp - 0x29d4]
push eax
call fcn.100843a0
add esp, 0xc
mov ecx, dword [ebp - 0x2488]
mov dword [ebp - 0x51f0], ecx
mov edx, dword [ebp - 0x51f0]
push edx
call fcn.1008ffeb
add esp, 4
jmp 0x10080f51
mov eax, dword [ebp - 0x2484]
mov dword [ebp - 0x51f4], eax
mov ecx, dword [ebp - 0x51f4]
push ecx
call fcn.1008ffeb
add esp, 4
cmp dword [ebp - 0x2630], 0
je 0x10081a58
mov edx, 0x22
shl edx, 2
mov eax, dword [0x406931c]
mov ecx, dword [eax + edx]
xor ecx, 0
mov dword [ebp - 0x5414], ecx
mov edx, dword [ebp - 0x5414]
mov dword [ebp - 0x3c14], edx
movzx esi, byte [ebp - 0x2641]
neg esi
sbb esi, esi
and esi, 0x100
add esi, 0x200
call fcn.10086290
neg eax
sbb eax, eax
and eax, 0x100
add eax, 0x100
push eax
lea ecx, [ebp - 0x3c14]
call fcn.1000c5f0
add esi, eax
mov dword [ebp - 0x3c10], esi
mov dword [ebp - 0x3c18], 0
jmp 0x100819e3
mov eax, dword [ebp - 0x3c18]
add eax, 1
mov dword [ebp - 0x3c18], eax
mov ecx, dword [ebp - 0x3c18]
cmp ecx, dword [ebp - 0x3c10]
jae 0x10081a58
mov edx, dword [ebp - 0x265c]
push edx
lea ecx, [ebp - 0x3c14]
call fcn.1000c5f0
mov dword [ebp - 0x3c1c], eax
mov eax, dword [ebp - 0x2630]
mov ecx, dword [eax]
mov dword [ebp - 0x3c20], ecx
mov edx, dword [ebp - 0x3c1c]
lea eax, [edx*4 + 4]
push eax
mov ecx, dword [ebp - 0x2630]
add ecx, 4
push ecx
mov edx, dword [ebp - 0x2630]
push edx
call fcn.10091f90
add esp, 0xc
mov eax, dword [ebp - 0x3c1c]
mov ecx, dword [ebp - 0x2630]
mov edx, dword [ebp - 0x3c20]
mov dword [ecx + eax*4], edx
jmp 0x100819d4
mov eax, dword [ebp - 0x25b8]
push eax
call fcn.1008f270
add esp, 4
mov dword [0x4064a6c], 0x404f8b8
mov ecx, dword [0x406b22c]
mov dword [ebp - 0x5438], ecx
mov edx, dword [ebp - 0x5438]
mov eax, dword [edx + 0x5e4]
mov dword [ebp - 0x25a0], eax
mov dword [ebp - 0x3c24], 0
jmp 0x10081aaa
mov ecx, dword [ebp - 0x3c24]
add ecx, 1
mov dword [ebp - 0x3c24], ecx
mov edx, dword [0x406b22c]
mov dword [ebp - 0x543c], edx
mov eax, dword [ebp - 0x543c]
mov cx, word [eax + 0x5e0]
mov word [ebp - 0x543e], cx
movzx edx, word [ebp - 0x543e]
cmp dword [ebp - 0x3c24], edx
jge 0x10081cdf
mov eax, dword [ebp - 0x25a0]
mov ecx, dword [eax]
mov dword [ebp - 0x3c28], ecx
mov edx, dword [ebp - 0x25a0]
add edx, 4
mov dword [ebp - 0x25a0], edx
mov eax, dword [ebp - 0x25a0]
mov ecx, dword [eax]
mov dword [ebp - 0x3c2c], ecx
mov edx, dword [ebp - 0x25a0]
add edx, 4
mov dword [ebp - 0x25a0], edx
mov eax, dword [0x4073510]
mov cx, word [eax]
mov word [ebp - 0x3c30], cx
mov edx, dword [0x4073510]
add edx, 2
mov dword [0x4073510], edx
movzx eax, word [ebp - 0x3c30]
push eax
mov ecx, dword [0x4073510]
push ecx
lea edx, [ebp - 0x4c34]
push edx
call fcn.1008f470
add esp, 0xc
movzx eax, word [ebp - 0x3c30]
add eax, dword [0x4073510]
mov dword [0x4073510], eax
cmp dword [ebp - 0x3c28], 0
je 0x10081cda
mov ecx, dword [ebp - 0x3c2c]
mov dword [ebp - 0x4c3c], ecx
lea edx, [ebp - 0x4c34]
mov dword [ebp - 0x4c40], edx
movzx eax, word [ebp - 0x3c30]
add eax, dword [ebp - 0x4c40]
mov dword [ebp - 0x4c44], eax
jmp 0x10081bae
mov ecx, dword [ebp - 0x4c40]
add ecx, 1
mov dword [ebp - 0x4c40], ecx
mov edx, dword [ebp - 0x4c40]
cmp edx, dword [ebp - 0x4c44]
jae 0x10081bee
push 0x100
lea ecx, [ebp - 0x4c3c]
call fcn.1000c5f0
mov byte [ebp - 0x5451], al
movzx eax, byte [ebp - 0x5451]
mov ecx, dword [ebp - 0x4c40]
movzx edx, byte [ecx]
xor edx, eax
mov eax, dword [ebp - 0x4c40]
mov byte [eax], dl
jmp 0x10081b9f
lea ecx, [ebp - 0x4c38]
push ecx
push 4
movzx edx, word [ebp - 0x3c30]
push edx
mov eax, dword [ebp - 0x2598]
add eax, dword [ebp - 0x3c28]
push eax
call dword [0x4049154]
mov cl, byte [0x40692f4]
mov byte [ebp - 0x5452], cl
movzx edx, byte [ebp - 0x5452]
test edx, edx
je 0x10081c8d
push 0
movzx eax, word [ebp - 0x3c30]
push eax
mov ecx, dword [ebp - 0x2598]
add ecx, dword [ebp - 0x3c28]
push ecx
call fcn.100843a0
add esp, 0xc
movzx edx, word [ebp - 0x3c30]
push edx
lea eax, [ebp - 0x4c34]
push eax
mov ecx, dword [ebp - 0x2598]
add ecx, dword [ebp - 0x3c28]
push ecx
call fcn.1008f470
add esp, 0xc
push 1
movzx edx, word [ebp - 0x3c30]
push edx
mov eax, dword [ebp - 0x2598]
add eax, dword [ebp - 0x3c28]
push eax
call fcn.100843a0
add esp, 0xc
jmp 0x10081cb1
movzx ecx, word [ebp - 0x3c30]
push ecx
lea edx, [ebp - 0x4c34]
push edx
mov eax, dword [ebp - 0x2598]
add eax, dword [ebp - 0x3c28]
push eax
call fcn.1008f470
add esp, 0xc
lea ecx, [ebp - 0x4c38]
push ecx
mov edx, dword [ebp - 0x4c38]
push edx
movzx eax, word [ebp - 0x3c30]
push eax
mov ecx, dword [ebp - 0x2598]
add ecx, dword [ebp - 0x3c28]
push ecx
call dword [0x4049154]
jmp 0x10081a9b
mov dword [0x4064a6c], 0x404f8b0
mov edx, dword [0x4073510]
mov eax, dword [edx]
mov dword [ebp - 0x262c], eax
mov ecx, dword [0x4073510]
add ecx, 4
mov dword [0x4073510], ecx
mov edx, dword [0x4073510]
mov eax, dword [edx]
mov dword [ebp - 0x263c], eax
mov ecx, dword [0x4073510]
add ecx, 4
mov dword [0x4073510], ecx
cmp dword [ebp - 0x262c], 0
je 0x10081da0
cmp dword [ebp - 0x263c], 0
je 0x10081da0
mov edx, dword [ebp - 0x25c4]
mov eax, dword [ebp - 0x2598]
cmp eax, dword [edx + 0x34]
je 0x10081da0
mov ecx, dword [ebp - 0x263c]
push ecx
mov edx, dword [ebp - 0x2598]
add edx, dword [ebp - 0x262c]
push edx
mov eax, dword [ebp - 0x25c4]
mov ecx, dword [eax + 0x34]
push ecx
mov edx, dword [ebp - 0x2598]
push edx
call fcn.10084700
add esp, 0x10
movzx eax, al
test eax, eax
jne 0x10081da0
mov ecx, dword [ebp + 8]
mov edx, dword [ecx]
mov dword [edx], 7
push 0x404f8a0
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 4]
push ecx
call fcn.1008fec0
add esp, 8
xor eax, eax
jmp 0x100824f5
mov dword [0x4064a6c], 0x404f898
cmp dword [ebp - 0x2658], 0
je 0x10081fa3
cmp dword [ebp - 0x2630], 0
je 0x10081fa3
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x4c4c], edx
mov eax, dword [ebp - 0x18]
sub eax, dword [ebp - 0x20]
add eax, 1
mov dword [ebp - 0x4c54], eax
lea ecx, [ebp - 0x4c48]
push ecx
push 4
mov edx, dword [ebp - 0x4c54]
push edx
mov eax, dword [ebp - 0x2598]
add eax, dword [ebp - 0x4c4c]
push eax
call dword [0x4049154]
mov cl, byte [0x40692f4]
mov byte [ebp - 0x5453], cl
movzx edx, byte [ebp - 0x5453]
test edx, edx
je 0x10081e34
push 0
mov eax, dword [ebp - 0x4c54]
push eax
mov ecx, dword [ebp - 0x2598]
add ecx, dword [ebp - 0x4c4c]
push ecx
call fcn.100843a0
add esp, 0xc
mov edx, dword [ebp - 0x25c4]
mov esi, dword [ebp - 0x2598]
sub esi, dword [edx + 0x34]
call fcn.10086290
neg eax
sbb eax, eax
and eax, 0x1000
add esi, eax
mov dword [ebp - 0x4c50], esi
mov dword [ebp - 0x4c58], 0
jmp 0x10081e74
mov eax, dword [ebp - 0x4c58]
add eax, 1
mov dword [ebp - 0x4c58], eax
mov ecx, dword [ebp - 0x4c58]
mov edx, dword [ebp - 0x2658]
cmp dword [edx + ecx*4], 0
je 0x10081f21
mov eax, dword [ebp - 0x4c58]
mov ecx, dword [ebp - 0x2658]
mov edx, dword [ebp - 0x2598]
add edx, dword [ecx + eax*4]
mov dword [ebp - 0x4c5c], edx
mov eax, dword [ebp - 0x4c5c]
mov ecx, dword [eax]
mov dword [ebp - 0x4c60], ecx
cmp dword [ebp - 0x4c60], 0x90909090
je 0x10081f1c
mov edx, dword [ebp - 0x4c60]
sub edx, dword [ebp - 0x4c50]
mov dword [ebp - 0x4c60], edx
mov eax, dword [ebp - 0x4c60]
push eax
mov eax, dword [ebp - 0x4c58]
xor edx, edx
mov ecx, 0x1f
div ecx
mov edx, dword [edx*4 + 0x404f3a0]
call edx
add esp, 4
mov dword [ebp - 0x4c60], eax
mov eax, dword [ebp - 0x4c60]
mov ecx, dword [ebp - 0x2630]
lea edx, [ecx + eax*4]
mov dword [ebp - 0x4c60], edx
mov eax, dword [ebp - 0x4c5c]
mov ecx, dword [ebp - 0x4c60]
mov dword [eax], ecx
jmp 0x10081e65
mov dl, byte [0x40692f4]
mov byte [ebp - 0x5454], dl
movzx eax, byte [ebp - 0x5454]
test eax, eax
je 0x10081f56
push 1
mov ecx, dword [ebp - 0x4c54]
push ecx
mov edx, dword [ebp - 0x2598]
add edx, dword [ebp - 0x4c4c]
push edx
call fcn.100843a0
add esp, 0xc
lea eax, [ebp - 0x4c48]
push eax
mov ecx, dword [ebp - 0x4c48]
push ecx
mov edx, dword [ebp - 0x4c54]
push edx
mov eax, dword [ebp - 0x2598]
add eax, dword [ebp - 0x4c4c]
push eax
call dword [0x4049154]
mov ecx, dword [ebp - 0x2658]
mov dword [ebp - 0x51f8], ecx
mov edx, dword [ebp - 0x51f8]
push edx
call fcn.1008ffeb
add esp, 4
mov dword [ebp - 0x2658], 0
mov eax, 2
shl eax, 2
mov ecx, dword [0x406931c]
mov edx, dword [0x406931c]
mov esi, dword [0x406931c]
mov ebx, dword [esi + 0x7c]
xor ebx, dword [edx + 0x70]
xor ebx, dword [ecx + eax]
and ebx, 1
neg ebx
sbb ebx, ebx
neg ebx
movzx eax, bl
test eax, eax
je 0x100821be
mov ecx, 0xe
shl ecx, 2
mov edx, dword [0x406931c]
mov eax, dword [0x406931c]
mov esi, dword [0x406931c]
mov esi, dword [esi + 0x7c]
xor esi, dword [eax + 0x3c]
xor esi, dword [edx + ecx]
add esi, dword [ebp - 0x2598]
mov dword [ebp - 0x4c64], esi
mov ecx, 0x16
shl ecx, 2
mov edx, dword [0x406931c]
mov eax, dword [0x406931c]
mov esi, dword [0x406931c]
mov esi, dword [esi + 0x60]
xor esi, dword [eax + 0x70]
xor esi, dword [edx + ecx]
mov dword [ebp - 0x5068], esi
mov ecx, 0x18
shl ecx, 2
mov edx, dword [0x406931c]
mov eax, dword [edx + ecx]
xor eax, 0
mov dword [ebp - 0x5458], eax
mov ecx, 0x1f
shl ecx, 2
mov edx, dword [0x406931c]
mov eax, dword [edx + ecx]
xor eax, 0
mov dword [ebp - 0x545c], eax
mov ecx, dword [ebp - 0x5458]
xor ecx, dword [ebp - 0x545c]
mov edx, 0x1c
shl edx, 2
mov eax, dword [0x406931c]
mov edx, dword [eax + edx]
xor edx, 0
xor ecx, edx
mov dword [0x406decc], ecx
mov dword [ebp - 0x506c], 0x80000000
mov dword [ebp - 0x5070], 0
jmp 0x100820b0
mov eax, dword [ebp - 0x5070]
add eax, 1
mov dword [ebp - 0x5070], eax
cmp dword [ebp - 0x5070], 0x100
jae 0x10082154
push 8
mov ecx, dword [ebp - 0x5070]
push ecx
call fcn.10076520
add esp, 8
shl eax, 0x18
mov dword [ebp - 0x5074], eax
mov dword [ebp - 0x5078], 0
jmp 0x100820f5
mov edx, dword [ebp - 0x5078]
add edx, 1
mov dword [ebp - 0x5078], edx
cmp dword [ebp - 0x5078], 8
jge 0x10082131
mov eax, dword [ebp - 0x5074]
and eax, 0x80000000
je 0x10082121
mov ecx, dword [ebp - 0x5074]
shl ecx, 1
xor ecx, 0x4c11db7
mov dword [ebp - 0x5074], ecx
jmp 0x1008212f
mov edx, dword [ebp - 0x5074]
shl edx, 1
mov dword [ebp - 0x5074], edx
jmp 0x100820e6
push 0x20
mov eax, dword [ebp - 0x5074]
push eax
call fcn.10076520
add esp, 8
mov ecx, dword [ebp - 0x5070]
mov dword [ebp + ecx*4 - 0x5064], eax
jmp 0x100820a1
mov edx, dword [ebp - 0x4c64]
mov dword [ebp - 0x507c], edx
mov eax, dword [ebp - 0x507c]
add eax, dword [ebp - 0x5068]
mov dword [ebp - 0x5080], eax
jmp 0x10082183
mov ecx, dword [ebp - 0x507c]
add ecx, 1
mov dword [ebp - 0x507c], ecx
mov edx, dword [ebp - 0x507c]
cmp edx, dword [ebp - 0x5080]
jae 0x100821be
mov eax, dword [ebp - 0x507c]
movsx ecx, byte [eax]
xor ecx, dword [0x406decc]
and ecx, 0xff
mov edx, dword [0x406decc]
shr edx, 8
xor edx, dword [ebp + ecx*4 - 0x5064]
mov dword [0x406decc], edx
jmp 0x10082174
mov dword [0x4064a6c], 0x404f890
mov eax, 0x1f
shl eax, 2
mov ecx, dword [0x406931c]
mov edx, dword [ecx + eax]
xor edx, 0
mov dword [ebp - 0x5460], edx
mov eax, 0x1c
shl eax, 2
mov ecx, dword [0x406931c]
mov edx, dword [ecx + eax]
xor edx, 0
mov dword [ebp - 0x5464], edx
call fcn.10086290
mov ecx, dword [ebp - 0x5460]
xor ecx, dword [ebp - 0x5464]
xor ecx, eax
mov dword [ebp - 0x5468], ecx
mov edx, dword [ebp - 0x5468]
mov dword [0x4069308], edx
mov eax, 0x15
shl eax, 2
mov ecx, dword [0x406931c]
mov edx, dword [0x406931c]
mov esi, dword [0x406931c]
mov esi, dword [esi + 0x90]
xor esi, dword [edx + 0x7c]
xor esi, dword [ecx + eax]
mov dword [ebp - 0x546c], esi
mov eax, dword [ebp - 0x546c]
push eax
mov ecx, dword [0x4073510]
push ecx
call fcn.10050580
add esp, 8
mov dword [0x4073510], eax
mov dword [0x4069308], 0
mov dword [0x4064a6c], 0x404f888
mov edx, dword [0x4073510]
sub edx, dword [0x4073074]
mov dword [0x407307c], edx
mov eax, 0x25
shl eax, 2
mov ecx, dword [0x406931c]
mov edx, dword [0x406931c]
mov esi, dword [0x406931c]
mov ebx, dword [esi + 0x7c]
xor ebx, dword [edx + 0x70]
xor ebx, dword [ecx + eax]
and ebx, 0x80
neg ebx
sbb ebx, ebx
neg ebx
movzx eax, bl
test eax, eax
jne 0x100822c9
call fcn.10084590
mov cl, byte [0x40692f4]
mov byte [ebp - 0x546d], cl
movzx edx, byte [ebp - 0x546d]
test edx, edx
je 0x10082400
lea eax, [ebp - 0x5084]
push eax
push 1
mov ecx, dword [ebp - 0x234]
push ecx
mov edx, dword [ebp - 0x2598]
add edx, dword [ebp - 0x20]
push edx
call dword [0x4049154]
mov dword [ebp - 0x5128], eax
mov dword [ebp - 0x5124], 0x94
lea eax, [ebp - 0x5124]
push eax
call dword [0x4049134]
cmp dword [ebp - 0x5114], 2
jne 0x1008235b
lea ecx, [ebp - 0x5084]
push ecx
mov edx, dword [ebp - 0x5084]
or edx, 0x100
push edx
mov eax, dword [ebp - 0x234]
push eax
mov ecx, dword [ebp - 0x2598]
add ecx, dword [ebp - 0x20]
push ecx
call dword [0x4049154]
mov dword [ebp - 0x5128], eax
mov edx, dword [ebp - 0x2598]
add edx, dword [ebp - 0x20]
mov dword [ebp - 0x508c], edx
mov eax, dword [ebp - 0x508c]
add eax, dword [ebp - 0x234]
mov dword [ebp - 0x5088], eax
mov ecx, dword [0x4073834]
mov dword [ebp - 0x512c], ecx
jmp 0x10082399
mov edx, dword [ebp - 0x512c]
mov eax, dword [edx + 0x10]
mov dword [ebp - 0x512c], eax
cmp dword [ebp - 0x512c], 0
je 0x10082400
mov ecx, dword [ebp - 0x512c]
mov edx, dword [ecx]
cmp edx, dword [ebp - 0x508c]
jb 0x100823c2
mov eax, dword [ebp - 0x512c]
mov ecx, dword [eax]
cmp ecx, dword [ebp - 0x5088]
jb 0x100823f4
mov edx, dword [ebp - 0x512c]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x512c]
add eax, dword [ecx + 4]
cmp eax, dword [ebp - 0x508c]
jb 0x100823fe
mov edx, dword [ebp - 0x512c]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x512c]
add eax, dword [ecx + 4]
cmp eax, dword [ebp - 0x5088]
jae 0x100823fe
mov edx, dword [ebp - 0x512c]
mov byte [edx + 0xc], 1
jmp 0x1008238a
mov eax, dword [0x4049250]
push eax
call fcn.1008ea00
add esp, 4
mov byte [ebp - 0x2599], al
movzx ecx, byte [ebp - 0x2599]
test ecx, ecx
je 0x10082445
mov edx, 6
shl edx, 2
mov eax, dword [0x406931c]
mov ecx, dword [eax + edx]
xor ecx, 0x7c3
mov edx, 6
shl edx, 2
mov eax, dword [0x406931c]
mov dword [edx + eax], ecx
mov dword [0x4064a6c], 0x404f880
push 0
mov ecx, 0x4068cd0
call fcn.1001deb0
cmp dword [0x406aed8], 0
jne 0x10082471
call dword [0x4049334]
mov dword [0x406aed8], eax
jmp 0x1008245b
mov ecx, dword [0x4069364]
mov dword [ebp - 0x5478], ecx
mov edx, dword [0x406931c]
mov eax, dword [0x406931c]
mov ecx, dword [edx + 0x60]
xor ecx, dword [eax + 0x78]
mov edx, dword [0x406931c]
xor ecx, dword [edx + 0x70]
mov dword [ebp - 0x547c], ecx
push 0
mov ecx, 0x4068cd0
call fcn.10012dc0
mov ecx, dword [ebp - 0x5478]
xor ecx, dword [ebp - 0x547c]
cmp eax, ecx
jne 0x100824f0
mov edx, dword [0x4069368]
mov dword [ebp - 0x5484], edx
mov eax, dword [0x406931c]
mov ecx, dword [0x406931c]
mov edx, dword [eax + 0x7c]
xor edx, dword [ecx + 0x64]
mov eax, dword [0x406931c]
xor edx, dword [eax + 0x3c]
mov dword [ebp - 0x5488], edx
push 0
mov ecx, 0x4068cd0
call fcn.10012e20
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x24]
xor ecx, ebp
call fcn.1008fca1
mov esp, ebp
pop ebp
ret