Function at 0x10075a70
Capabilities:
Hash data using crc32b

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x363c1f2
mov eax, dword fs:[0]
push eax
mov eax, 0x5438
call fcn.10087600
mov eax, dword [0x3657da0]
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 [0x363f0e0]
sub eax, 0x64
mov dword [0x3664960], eax
mov ecx, dword [0x363f26c]
sub ecx, 0x64
mov dword [0x3664964], ecx
mov edx, dword [0x363f268]
sub edx, 0x64
mov dword [0x3664968], edx
mov eax, dword [0x363f204]
sub eax, 0x64
mov dword [0x366496c], eax
mov ecx, dword [0x363f200]
sub ecx, 0x64
mov dword [0x3664970], ecx
mov edx, dword [0x363f3fc]
sub edx, 0x64
mov dword [0x3664974], edx
mov eax, dword [0x363f264]
sub eax, 0x64
mov dword [0x3664978], eax
mov ecx, dword [0x363f438]
sub ecx, 0x64
mov dword [0x366497c], ecx
mov edx, dword [0x363f4fc]
sub edx, 0x64
mov dword [0x3664980], edx
mov eax, dword [0x363f134]
sub eax, 0x64
mov dword [0x3664984], eax
mov ecx, dword [0x363f31c]
sub ecx, 0x64
mov dword [0x3664988], ecx
mov edx, dword [0x363f0f4]
sub edx, 0x64
mov dword [0x366498c], edx
mov eax, dword [0x363f2a4]
sub eax, 0x64
mov dword [0x3664990], eax
mov ecx, dword [0x363f02c]
sub ecx, 0x64
mov dword [0x36649a4], ecx
mov edx, dword [0x363f004]
sub edx, 0x64
mov dword [0x36649a8], edx
mov eax, dword [0x363f008]
sub eax, 0x64
mov dword [0x36649ac], eax
mov ecx, dword [0x363f03c]
sub ecx, 0x64
mov dword [0x36649b0], ecx
mov edx, dword [0x363f00c]
sub edx, 0x64
mov dword [0x36649b4], edx
mov eax, dword [0x363f01c]
sub eax, 0x64
mov dword [0x36649b8], eax
push 0x3644310
push 0x36423d8
call dword [0x363f0e0]
push eax
call fcn.1004ace0
add esp, 8
mov dword [0x36649bc], eax
push 0x3644304
push 0x36423d8
call dword [0x363f0e0]
push eax
call fcn.1004ace0
add esp, 8
mov dword [0x36649c0], eax
mov ecx, dword [0x363f0e0]
push ecx
call fcn.1007db60
add esp, 4
movzx esi, al
mov edx, dword [0x36649bc]
push edx
call fcn.1007db60
add esp, 4
movzx eax, al
add esi, eax
mov dword [ebp - 0x22c], esi
mov ecx, dword [0x363f334]
sub ecx, 0x64
mov dword [0x36649c4], ecx
mov edx, 0x23
shl edx, 2
mov eax, dword [0x365aa9c]
mov ecx, dword [0x365aa9c]
mov esi, dword [0x365aa9c]
mov ebx, dword [esi + 0x70]
xor ebx, dword [ecx + 0x54]
xor ebx, dword [eax + edx]
and ebx, 0x20
neg ebx
sbb ebx, ebx
neg ebx
movzx edx, bl
test edx, edx
je 0x10075c5f
call fcn.1007db50
mov dword [0x3656254], 0x36442fc
call dword [0x363f260]
mov dword [0x36649c8], eax
call dword [0x363f25c]
mov dword [0x36649cc], eax
call dword [0x363f240]
mov dword [0x36649d0], eax
call dword [0x363f258]
mov dword [0x36649d4], eax
mov dword [0x3656254], 0x36442f0
call fcn.1006d8f0
movzx eax, al
test eax, eax
jne 0x10075d46
push 0x10010
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0xf
call fcn.1002f2e0
add esp, 0x28
push eax
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x53
call fcn.1002f2e0
add esp, 0x28
push eax
push 0
call fcn.1002dd50
add esp, 4
push eax
push 0x36442dc
call fcn.1007f0e0
add esp, 0x14
mov eax, 2
jmp 0x10079dd1
mov dword [0x3656254], 0x36442d0
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x18]
mov eax, dword [edx]
and eax, 1
je 0x10075d7d
mov cl, byte [0x365aa76]
mov byte [ebp - 0x51f9], cl
movzx edx, byte [ebp - 0x51f9]
test edx, edx
je 0x10075d7d
mov byte [ebp - 0x5201], 1
jmp 0x10075d84
mov byte [ebp - 0x5201], 0
mov eax, dword [0x365c8ac]
mov dword [ebp - 0x5200], eax
mov ecx, dword [ebp - 0x5200]
mov dl, byte [ebp - 0x5201]
mov byte [ecx + 0x61a], dl
mov dword [0x3656254], 0x36442c4
mov eax, 0x23
shl eax, 2
mov ecx, dword [0x365aa9c]
mov edx, dword [0x365aa9c]
mov esi, dword [0x365aa9c]
mov ebx, dword [esi + 0x70]
xor ebx, dword [edx + 0x54]
xor ebx, dword [ecx + eax]
and ebx, 0x20
neg ebx
sbb ebx, ebx
neg ebx
movzx eax, bl
test eax, eax
je 0x10075df6
mov ecx, dword [0x363f254]
push ecx
call fcn.1007db60
add esp, 4
movzx edx, al
mov dword [ebp - 0x23c], edx
mov dword [0x3656254], 0x36442bc
mov eax, dword [0x363f14c]
sub eax, 0x64
mov dword [0x3664994], eax
mov ecx, dword [0x363f170]
sub ecx, 0x64
mov dword [0x3664998], ecx
mov edx, dword [0x363f4b0]
sub edx, 0x64
mov dword [0x366499c], edx
mov eax, dword [0x363f3c4]
sub eax, 0x64
mov dword [0x36649a0], eax
mov ecx, 0xc
shl ecx, 2
mov edx, dword [0x365aa9c]
mov eax, dword [0x365aa9c]
mov esi, dword [0x365aa9c]
mov esi, dword [esi + 0x70]
xor esi, dword [eax + 0x48]
xor esi, dword [edx + ecx]
mov dword [ebp - 0x20], esi
mov ecx, 0x16
shl ecx, 2
mov edx, dword [0x365aa9c]
mov eax, dword [0x365aa9c]
mov esi, dword [0x365aa9c]
mov esi, dword [esi + 0x18]
xor esi, dword [eax + 0x54]
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.1007db50
mov dword [ebp - 0x228], eax
cmp dword [ebp - 0x228], 0
je 0x10075ecb
mov edx, 5
shl edx, 2
mov eax, dword [0x365aa9c]
mov ecx, dword [eax + edx]
xor ecx, 0x2611
mov edx, 5
shl edx, 2
mov eax, dword [0x365aa9c]
mov dword [edx + eax], ecx
call fcn.10079f40
movzx ecx, al
test ecx, ecx
je 0x10075ee1
mov eax, 2
jmp 0x10079dd1
push 0
mov ecx, 0x365a450
call fcn.1001c4d0
mov edx, dword [ebp + 8]
cmp dword [edx + 0x14], 0
jne 0x10075f52
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x1c]
push ecx
call fcn.10087470
add esp, 4
test eax, eax
je 0x10075f52
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x1c]
push eax
mov ecx, dword [0x365c8ac]
call fcn.10015850
movzx ecx, al
test ecx, ecx
jne 0x10075f43
push 0x10
push 0
push 0x36442ac
push 0
call fcn.1002dd50
add esp, 4
push eax
push 0x3644294
call fcn.1007f970
add esp, 0x14
mov eax, 2
jmp 0x10079dd1
mov edx, dword [ebp + 8]
cmp dword [edx + 0x14], 1
je 0x10075f68
mov eax, dword [ebp + 8]
cmp dword [eax + 0x14], 8
jne 0x10075fec
mov cl, byte [0x365aa7a]
mov byte [ebp - 0x5202], cl
movzx edx, byte [ebp - 0x5202]
test edx, edx
jne 0x10075f95
mov al, byte [0x365aa6f]
mov byte [ebp - 0x5203], al
movzx ecx, byte [ebp - 0x5203]
test ecx, ecx
je 0x10075fec
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x1c]
push eax
push 0x36649f8
call fcn.10087500
add esp, 8
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x14], 8
sete dl
push edx
push 0
push 0
call fcn.10071290
add esp, 0xc
movzx eax, al
test eax, eax
je 0x10075fd3
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x28], 0
jmp 0x10075fdd
mov edx, dword [ebp + 8]
mov dword [edx + 0x28], 1
mov eax, 2
jmp 0x10079dd1
mov eax, dword [ebp + 8]
cmp dword [eax + 0x14], 3
jne 0x10076009
call fcn.10073480
mov eax, 2
jmp 0x10079dd1
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x14], 4
jne 0x1007603d
mov dl, byte [0x365aa78]
mov byte [ebp - 0x5204], dl
movzx eax, byte [ebp - 0x5204]
test eax, eax
je 0x1007603d
call fcn.1007b3e0
mov eax, 2
jmp 0x10079dd1
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x14], 5
jne 0x10076073
mov dl, byte [0x365aa7b]
mov byte [ebp - 0x5205], dl
movzx eax, byte [ebp - 0x5205]
test eax, eax
je 0x10076073
push 0
call fcn.1007ad70
add esp, 4
mov eax, 2
jmp 0x10079dd1
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x14], 9
jne 0x10076092
push 1
call fcn.1007ad70
add esp, 4
mov eax, 2
jmp 0x10079dd1
mov edx, dword [ebp + 8]
cmp dword [edx + 0x14], 6
jne 0x100760ac
call fcn.1007c110
mov eax, 2
jmp 0x10079dd1
mov eax, dword [ebp + 8]
cmp dword [eax + 0x14], 7
jne 0x100760c8
push 0
call fcn.1006d730
mov eax, 2
jmp 0x10079dd1
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x14], 0xa
jne 0x100760db
mov eax, 2
jmp 0x10079dd1
mov dl, byte [0x3640055]
mov byte [ebp - 0x224], dl
push 0x1ff
push 0
lea eax, [ebp - 0x223]
push eax
call fcn.10086ea0
add esp, 0xc
mov dword [ebp - 0x238], 0
mov cl, byte [0x365aa6f]
mov byte [ebp - 0x5206], cl
movzx edx, byte [ebp - 0x5206]
test edx, edx
je 0x1007612a
mov dword [ebp - 0x238], 0x3644288
jmp 0x1007614a
mov al, byte [0x365aa7a]
mov byte [ebp - 0x5207], al
movzx ecx, byte [ebp - 0x5207]
test ecx, ecx
je 0x1007614a
mov dword [ebp - 0x238], 0x36406f8
cmp dword [ebp - 0x238], 0
je 0x10076181
mov ecx, 0x365a450
call fcn.1001c340
push eax
push 0x1ff
lea edx, [ebp - 0x224]
push edx
push 0x3640055
mov eax, dword [ebp - 0x238]
push eax
push 0x36406f0
call dword [0x363f090]
lea ecx, [ebp - 0x224]
push ecx
call fcn.10087470
add esp, 4
test eax, eax
je 0x10076240
mov dl, byte [0x3640055]
mov byte [ebp - 0x33c], dl
push 0xff
push 0
lea eax, [ebp - 0x33b]
push eax
call fcn.10086ea0
add esp, 0xc
mov cl, byte [0x3640055]
mov byte [ebp - 0x43c], cl
push 0xff
push 0
lea edx, [ebp - 0x43b]
push edx
call fcn.10086ea0
add esp, 0xc
lea eax, [ebp - 0x43c]
push eax
lea ecx, [ebp - 0x33c]
push ecx
lea edx, [ebp - 0x224]
push edx
call fcn.1004f740
add esp, 0xc
movzx eax, al
test eax, eax
je 0x10076240
push 1
lea ecx, [ebp - 0x43c]
push ecx
lea edx, [ebp - 0x33c]
push edx
mov ecx, 0x365a450
call fcn.1001cf70
movzx eax, al
test eax, eax
je 0x10076240
mov ecx, 0x365a450
call fcn.1001c340
push eax
push 0
mov ecx, dword [ebp - 0x238]
push ecx
push 0x36406f0
call dword [0x363f1f0]
mov dword [0x3656254], 0x3644280
call fcn.1007db60
mov byte [ebp - 0x1a], al
mov edx, dword [0x3664d10]
mov dword [0x3664d0c], edx
movzx eax, byte [ebp - 0x1a]
test eax, eax
je 0x1007628d
mov ecx, 5
shl ecx, 2
mov edx, dword [0x365aa9c]
mov eax, dword [edx + ecx]
xor eax, 0x1c96
mov ecx, 5
shl ecx, 2
mov edx, dword [0x365aa9c]
mov dword [ecx + edx], eax
mov ecx, 0x365a450
call fcn.10079eb0
movzx eax, al
test eax, eax
je 0x10076358
call fcn.10048f20
movzx ecx, al
test ecx, ecx
je 0x10076358
push 0x10044
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0xe
call fcn.1002f2e0
add esp, 0x28
push eax
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x42
call fcn.1002f2e0
add esp, 0x28
push eax
push 0
call fcn.1002dd50
add esp, 4
push eax
push 0x3644270
call fcn.1007f0e0
add esp, 0x14
cmp eax, 6
jne 0x1007634e
push 0
push 2
call dword [0x363f3ec]
mov eax, 2
jmp 0x10079dd1
mov dword [0x3656254], 0x3644268
call fcn.1007db60
mov dword [0x3656254], 0x3644260
mov eax, dword [0x365c8ac]
mov dword [ebp - 0x520c], eax
mov ecx, dword [ebp - 0x520c]
mov byte [ecx + 0x61c], 0
mov edx, dword [0x365c8ac]
mov al, byte [edx + 0x610]
mov byte [ebp - 0x520d], al
movzx ecx, byte [ebp - 0x520d]
test ecx, ecx
je 0x10076433
mov dword [0x3656254], 0x3644258
push 0
mov ecx, dword [0x365c8ac]
call fcn.10015630
mov dword [0x3656254], 0x3644250
push 1
mov ecx, dword [0x365c8ac]
call fcn.10015630
mov dword [0x3656254], 0x3644248
push 0
mov ecx, 0x365a450
call fcn.1001c4d0
mov dword [0x3656254], 0x3644240
push 0
push 0
mov ecx, dword [0x365c8ac]
call fcn.10015540
movzx edx, al
test edx, edx
jne 0x10076433
mov eax, dword [0x365c8ac]
mov dword [ebp - 0x5214], eax
mov ecx, dword [ebp - 0x5214]
mov byte [ecx + 0x610], 0
push 0x573
call fcn.1006e4e0
add esp, 4
mov dword [0x3656254], 0x3644234
mov byte [ebp - 0x19], 0
mov byte [0x365625c], 1
mov edx, dword [0x365c8ac]
mov al, byte [edx + 0x610]
mov byte [ebp - 0x5215], al
movzx ecx, byte [ebp - 0x5215]
test ecx, ecx
jne 0x10076922
mov byte [ebp - 0x43d], 1
mov dword [0x3656254], 0x3644228
call fcn.1006e4f0
cmp eax, 0x573
jne 0x1007657c
mov dword [0x3656254], 0x364421c
push 1
mov ecx, dword [0x365c8ac]
call fcn.10014d30
push eax
push 0x36403d8
lea edx, [ebp - 0x450]
push edx
call fcn.100873be
add esp, 0xc
lea eax, [ebp - 0x450]
push eax
lea ecx, [ebp - 0x518c]
call fcn.1005f1d0
mov dword [ebp - 4], 0
push 0x10010
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0xf
call fcn.1002f2e0
add esp, 0x28
push eax
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
lea ecx, [ebp - 0x518c]
push ecx
push 0x29
call fcn.1002f2e0
add esp, 0x28
push eax
push 0
call fcn.1002dd50
add esp, 4
push eax
push 0x3644208
call fcn.1007f0e0
add esp, 0x14
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x518c]
call fcn.1000b980
mov byte [ebp - 0x43d], 0
jmp 0x100768e4
call fcn.1006e4f0
cmp eax, 0x47e
jne 0x1007662f
mov dword [0x3656254], 0x36441fc
push 0x10010
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0xf
call fcn.1002f2e0
add esp, 0x28
push eax
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x30
call fcn.1002f2e0
add esp, 0x28
push eax
push 0
call fcn.1002dd50
add esp, 4
push eax
push 0x36441e4
call fcn.1007f0e0
add esp, 0x14
mov byte [ebp - 0x43d], 0
jmp 0x100768e4
call fcn.1006e4f0
cmp eax, 0x53d
jne 0x100766e2
mov dword [0x3656254], 0x36441d8
push 0x10010
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0xf
call fcn.1002f2e0
add esp, 0x28
push eax
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x4f
call fcn.1002f2e0
add esp, 0x28
push eax
push 0
call fcn.1002dd50
add esp, 4
push eax
push 0x36441c4
call fcn.1007f0e0
add esp, 0x14
mov byte [ebp - 0x43d], 0
jmp 0x100768e4
mov ecx, dword [0x365c8ac]
call fcn.10011fb0
movzx edx, al
test edx, edx
jne 0x100768c1
mov al, byte [0x365aa6f]
mov byte [ebp - 0x5239], al
movzx ecx, byte [ebp - 0x5239]
test ecx, ecx
jne 0x100768c1
mov dword [0x3656254], 0x36441b8
mov dl, byte [0x365aa79]
mov byte [ebp - 0x523a], dl
movzx eax, byte [ebp - 0x523a]
test eax, eax
je 0x1007678f
mov dword [0x3656254], 0x36441ac
push 0
push 0x364054c
push 0x36405a4
mov ecx, 0x365c8b0
call fcn.1000c010
push 1
push 0
push 0
mov ecx, 0x365a450
call fcn.1001cf70
movzx ecx, al
test ecx, ecx
jne 0x1007678a
call fcn.100717f0
movzx edx, al
test edx, edx
je 0x10076783
mov byte [0x365625c], 0
mov byte [ebp - 0x19], 1
jmp 0x1007678a
mov byte [ebp - 0x43d], 0
jmp 0x100768bf
mov dword [0x3656254], 0x36441a0
push 0
mov ecx, 0x365a450
call fcn.1001c4d0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x15
call fcn.1002f2e0
add esp, 0x28
push eax
lea eax, [ebp - 0x2454]
push eax
call fcn.1008778e
add esp, 8
push 0x10013
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x2f
call fcn.1002f2e0
add esp, 0x28
push eax
lea ecx, [ebp - 0x2454]
push ecx
push 0
call fcn.1002dd50
add esp, 4
push eax
push 0x3644190
call fcn.1007f0e0
add esp, 0x14
mov dword [ebp - 0x2458], eax
cmp dword [ebp - 0x2458], 2
jne 0x10076877
push 0x10
call dword [0x363f3d0]
movsx edx, ax
and edx, 0xfffffffe
je 0x1007686e
push 0
call fcn.1006d730
mov byte [ebp - 0x43d], 0
jmp 0x100768bf
cmp dword [ebp - 0x2458], 6
jne 0x10076886
mov byte [ebp - 0x19], 1
jmp 0x100768bf
cmp dword [ebp - 0x2458], 7
jne 0x100768bf
push 1
push 0
push 0
mov ecx, 0x365a450
call fcn.1001cf70
movzx eax, al
test eax, eax
jne 0x100768bf
call fcn.100717f0
movzx ecx, al
test ecx, ecx
je 0x100768b8
mov byte [ebp - 0x19], 1
jmp 0x100768bf
mov byte [ebp - 0x43d], 0
jmp 0x100768e4
mov dword [0x3656254], 0x3644184
call fcn.100717f0
movzx edx, al
test edx, edx
je 0x100768dd
mov byte [ebp - 0x19], 1
jmp 0x100768e4
mov byte [ebp - 0x43d], 0
movzx eax, byte [ebp - 0x19]
test eax, eax
je 0x10076908
push 0
push 1
push 0
call fcn.10071290
add esp, 0xc
movzx ecx, al
test ecx, ecx
jne 0x10076908
mov byte [ebp - 0x43d], 0
movzx edx, byte [ebp - 0x43d]
test edx, edx
jne 0x1007691d
mov eax, 2
jmp 0x10079dd1
jmp 0x10076b4f
mov eax, dword [0x365c8ac]
mov cl, byte [eax + 0x611]
mov byte [ebp - 0x523b], cl
movzx edx, byte [ebp - 0x523b]
test edx, edx
je 0x10076ad4
mov eax, dword [ebp + 8]
cmp dword [eax + 0x14], 2
jne 0x10076ad4
mov dword [0x3656254], 0x3644178
mov cl, byte [0x365aa6e]
mov byte [ebp - 0x523c], cl
movzx edx, byte [ebp - 0x523c]
test edx, edx
jne 0x10076a3b
call fcn.1007b590
mov dword [ebp - 0x245c], eax
cmp dword [ebp - 0x245c], 0
je 0x10076a36
mov eax, dword [ebp - 0x245c]
push eax
mov ecx, dword [0x365c8ac]
call fcn.100192b0
movzx ecx, al
test ecx, ecx
jne 0x10076a36
push 0x10010
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0xf
call fcn.1002f2e0
add esp, 0x28
push eax
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x51
call fcn.1002f2e0
add esp, 0x28
push eax
push 0
call fcn.1002dd50
add esp, 4
push eax
push 0x3643ce0
call fcn.1007f0e0
add esp, 0x14
jmp 0x10076ac8
push 0x10040
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0xf
call fcn.1002f2e0
add esp, 0x28
push eax
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x36625e0
push 0x3e
call fcn.1002f2e0
add esp, 0x28
push eax
push 0
call fcn.1002dd50
add esp, 4
push eax
push 0x364415c
call fcn.1007f0e0
add esp, 0x14
mov eax, 2
jmp 0x10079dd1
mov dword [0x3656254], 0x3644150
push 0
mov ecx, 0x365a450
call fcn.1001c4d0
mov edx, dword [0x365c8ac]
mov al, byte [edx + 0x6a1]
mov byte [ebp - 0x523d], al
movzx ecx, byte [ebp - 0x523d]
test ecx, ecx
je 0x10076b2f
mov edx, dword [0x365c8ac]
mov al, byte [edx + 0x6a2]
mov byte [ebp - 0x523e], al
movzx ecx, byte [ebp - 0x523e]
test ecx, ecx
je 0x10076b2f
mov ecx, dword [0x365c8ac]
call fcn.1001a990
call fcn.100716c0
movzx edx, al
test edx, edx
jne 0x10076b4f
push 1
call fcn.1006dba0
add esp, 4
mov eax, 2
jmp 0x10079dd1
mov eax, dword [0x365c8ac]
mov cl, byte [eax + 0x61c]
mov byte [ebp - 0x523f], cl
movzx edx, byte [ebp - 0x523f]
test edx, edx
je 0x10076b7a
mov dword [0x3656254], 0x3644144
jmp 0x10076371
push 0
call fcn.1006dba0
add esp, 4
test eax, eax
je 0x10076c14
mov ecx, 0x365aaec
call fcn.10013a40
and eax, 1
je 0x10076c14
call fcn.100252c0
movzx eax, al
test eax, eax
je 0x10076c00
mov ecx, dword [0x365c8ac]
call fcn.10019d10
push 0
mov ecx, dword [0x365c8ac]
push ecx
call fcn.10006f70
add esp, 8
push 1
call fcn.1006dba0
add esp, 4
mov dword [ebp - 0x2460], eax
mov edx, dword [0x365aaa0]
mov dword [ebp - 0x5244], edx
mov eax, dword [ebp - 0x2460]
xor eax, dword [ebp - 0x5244]
xor eax, 0xffffffff
push eax
mov ecx, dword [0x365c8ac]
push ecx
call fcn.10025360
add esp, 8
jmp 0x10076c0a
push 1
call fcn.1006dba0
add esp, 4
mov eax, 2
jmp 0x10079dd1
mov dword [0x3656254], 0x364413c
mov edx, 0x1e
shl edx, 2
mov eax, dword [0x365aa9c]
mov ecx, dword [0x365aa9c]
mov esi, dword [0x365aa9c]
mov edi, dword [0x365aa9c]
mov edi, dword [edi + 0xc]
xor edi, dword [esi + 0x84]
xor edi, dword [ecx + 8]
xor edi, dword [eax + edx]
mov dword [ebp - 0x14], edi
je 0x10076d70
mov dword [ebp - 0x2464], 0x1e
mov dword [ebp - 0x2468], 0x2d
mov edx, dword [0x365c4a4]
mov dword [ebp - 0x5248], edx
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x5248]
je 0x10076cac
mov ecx, dword [ebp - 0x14]
mov dword [0x365c4a4], ecx
mov dword [0x365c4a8], 0
mov dword [0x365c4ac], 0
mov dword [0x365c4b0], 0
jmp 0x10076d2f
push 0
call fcn.1008a49f
add esp, 4
cmp dword [ebp - 0x14], eax
jbe 0x10076cd5
mov edx, dword [0x365c4a8]
mov dword [ebp - 0x524c], edx
mov eax, dword [ebp - 0x524c]
add eax, 1
mov dword [0x365c4a8], eax
mov ecx, dword [0x365c4b0]
mov dword [ebp - 0x5250], ecx
push 0
call fcn.100530b0
add esp, 4
movzx edx, ax
cmp edx, dword [ebp - 0x5250]
je 0x10076d2f
push 0
call fcn.100530b0
add esp, 4
movzx eax, ax
mov dword [ebp - 0x5254], eax
mov ecx, dword [ebp - 0x5254]
mov dword [0x365c4b0], ecx
mov edx, dword [0x365c4ac]
mov dword [ebp - 0x5258], edx
mov eax, dword [ebp - 0x5258]
add eax, 1
mov dword [0x365c4ac], eax
mov ecx, dword [0x365c4a8]
mov dword [ebp - 0x525c], ecx
cmp dword [ebp - 0x525c], 0x2d
ja 0x10076d59
mov edx, dword [0x365c4ac]
mov dword [ebp - 0x5260], edx
cmp dword [ebp - 0x5260], 0x1e
jbe 0x10076d70
push 0x3644134
call fcn.1006e6b0
add esp, 4
mov eax, 2
jmp 0x10079dd1
mov dword [0x3656254], 0x3644128
mov ecx, dword [0x365c8ac]
call fcn.1001ad20
movzx eax, al
test eax, eax
jne 0x10076d96
mov eax, 2
jmp 0x10079dd1
mov ecx, dword [0x365c8ac]
call fcn.10014f10
movzx ecx, al
test ecx, ecx
jne 0x10076db2
mov eax, 2
jmp 0x10079dd1
mov edx, 0x23
shl edx, 2
mov eax, dword [0x365aa9c]
mov ecx, dword [0x365aa9c]
mov esi, dword [0x365aa9c]
mov ebx, dword [esi + 0x70]
xor ebx, dword [ecx + 0x54]
xor ebx, dword [eax + edx]
and ebx, 0x20
neg ebx
sbb ebx, ebx
neg ebx
movzx edx, bl
test edx, edx
je 0x10076df8
call fcn.1002dfc0
test eax, eax
jne 0x10076df8
call fcn.1007db60
mov byte [ebp - 0x22d], al
mov ecx, dword [0x365c8ac]
mov edx, dword [ecx + 0x664]
mov dword [ebp - 0x5264], edx
cmp dword [ebp - 0x5264], 0
je 0x10076f9b
mov eax, dword [0x365c8ac]
mov ecx, dword [eax + 0x664]
mov dword [ebp - 0x5268], ecx
mov edx, dword [0x3664540]
add edx, dword [ebp - 0x5268]
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.10087630
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 0x10076f20
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.1002d4e0
add esp, 0x14
mov dword [ebp - 0x2478], eax
cmp dword [ebp - 0x2478], 0
jne 0x10076efe
mov edx, dword [ebp + 8]
mov eax, dword [edx]
mov dword [eax], 0
push 0x3644118
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 4]
push edx
call fcn.10087500
add esp, 8
xor eax, eax
jmp 0x10079dd1
cmp dword [ebp - 0x247c], 0
jne 0x10076f09
jmp 0x10076f20
mov eax, dword [ebp - 0x246c]
add eax, dword [ebp - 0x247c]
mov dword [ebp - 0x246c], eax
jmp 0x10076e89
mov ecx, dword [0x365c8ac]
mov dx, word [ecx + 0x652]
mov word [ebp - 0x526a], dx
movzx eax, word [ebp - 0x526a]
and eax, 0x7fff
push eax
call dword [0x365a0b8]
add esp, 4
mov ecx, dword [0x365c8ac]
mov dx, word [ecx + 0x652]
mov word [ebp - 0x526c], dx
push 0
movzx eax, word [ebp - 0x526c]
and eax, 0x8000
setne cl
push ecx
mov edx, dword [ebp - 0x2470]
push edx
call dword [0x365a0d4]
add esp, 0xc
mov eax, dword [ebp - 0x2470]
mov dword [ebp - 0x5194], eax
mov ecx, dword [ebp - 0x5194]
push ecx
call fcn.1008762b
add esp, 4
mov edx, 0x23
shl edx, 2
mov eax, dword [0x365aa9c]
mov ecx, dword [0x365aa9c]
mov esi, dword [0x365aa9c]
mov ebx, dword [esi + 0x70]
xor ebx, dword [ecx + 0x54]
xor ebx, dword [eax + edx]
and ebx, 0x20
neg ebx
sbb ebx, ebx
neg ebx
movzx edx, bl
test edx, edx
je 0x10076fff
movzx eax, byte [ebp - 0x22d]
test eax, eax
je 0x10076fff
mov ecx, 5
shl ecx, 2
mov edx, dword [0x365aa9c]
mov eax, dword [edx + ecx]
xor eax, 0xf88b6dc3
mov ecx, 5
shl ecx, 2
mov edx, dword [0x365aa9c]
mov dword [ecx + edx], eax
mov dword [0x3656254], 0x3644110
mov eax, dword [0x365c574]
mov dword [ebp - 0x5270], eax
mov ecx, dword [ebp - 0x5270]
add ecx, 1
mov dword [0x365c574], ecx
mov edx, dword [0x365aaf0]
or edx, 0x20
mov dword [0x365aaf0], edx
mov eax, dword [0x365c578]
mov dword [ebp - 0x5274], eax
mov ecx, dword [ebp - 0x5274]
add ecx, 1
mov dword [0x365c578], ecx
mov edx, dword [0x365aaf0]
or edx, 0x20
mov dword [0x365aaf0], edx
mov eax, dword [0x363f484]
push eax
call fcn.1007db60
add esp, 4
movzx ecx, al
mov dword [ebp - 0x10], ecx
cmp dword [ebp - 0x10], 0
je 0x1007709b
mov edx, 5
shl edx, 2
mov eax, dword [0x365aa9c]
mov ecx, dword [eax + edx]
xor ecx, 0x207d
mov edx, 5
shl edx, 2
mov eax, dword [0x365aa9c]
mov dword [edx + eax], ecx
mov dword [0x3656254], 0x3644108
push 0
mov ecx, 0x365a450
call fcn.1001c4d0
push 0
mov ecx, dword [0x365c8ac]
push ecx
call fcn.10006f70
add esp, 8
call fcn.10052d60
mov dword [0x36649dc], eax
mov dl, byte [0x365aa6f]
mov byte [ebp - 0x5275], dl
movzx eax, byte [ebp - 0x5275]
test eax, eax
je 0x10077126
mov ecx, dword [0x365c8ac]
mov dl, byte [ecx + 0x614]
mov byte [ebp - 0x5276], dl
mov al, byte [ebp - 0x5276]
push eax
push 1
mov ecx, dword [0x365c8ac]
call fcn.10014d30
push eax
push 0x365a45c
call fcn.10058a90
add esp, 0xc
mov eax, 2
jmp 0x10079dd1
mov dword [0x3656254], 0x3644100
mov dword [ebp - 0x2620], 0
mov byte [ebp - 0x261c], 0
lea ecx, [ebp - 0x2628]
push ecx
push 0x360c200
call dword [0x365a0d8]
add esp, 8
mov edx, 0x23
shl edx, 2
mov eax, dword [0x365aa9c]
mov ecx, dword [0x365aa9c]
mov esi, dword [0x365aa9c]
mov ebx, dword [esi + 0x70]
xor ebx, dword [ecx + 0x54]
xor ebx, dword [eax + edx]
and ebx, 0x20
neg ebx
sbb ebx, ebx
neg ebx
movzx edx, bl
test edx, edx
je 0x100771d5
movsx eax, byte [ebp - 0x261c]
test eax, eax
je 0x100771d5
mov ecx, 0x1c
shl ecx, 2
mov edx, dword [0x365aa9c]
mov eax, dword [edx + ecx]
xor eax, 0
mov dword [ebp - 0x5284], eax
mov ecx, 5
shl ecx, 2
mov edx, dword [0x365aa9c]
mov eax, dword [edx + ecx]
xor eax, dword [ebp - 0x5284]
mov ecx, 5
shl ecx, 2
mov edx, dword [0x365aa9c]
mov dword [ecx + edx], eax
mov dword [0x3656254], 0x36440f8
push 1
call fcn.100499f0
add esp, 4
mov eax, dword [0x363f1b0]
push eax
call fcn.1007db60
add esp, 4
movzx ecx, al
test ecx, ecx
je 0x1007723d
mov edx, 3
shl edx, 2
mov eax, dword [0x365aa9c]
mov ecx, dword [eax + edx]
xor ecx, 0
mov dword [ebp - 0x5288], ecx
mov edx, 5
shl edx, 2
mov eax, dword [0x365aa9c]
mov ecx, dword [eax + edx]
xor ecx, dword [ebp - 0x5288]
mov edx, 5
shl edx, 2
mov eax, dword [0x365aa9c]
mov dword [edx + eax], ecx
mov ecx, dword [0x365aab4]
mov dword [ebp - 0x2638], ecx
mov edx, dword [ebp - 0x2638]
mov eax, dword [ebp - 0x2638]
add eax, dword [edx + 0x3c]
mov dword [ebp - 0x25c4], eax
mov ecx, dword [0x365aab4]
mov dword [ebp - 0x528c], ecx
mov edx, dword [ebp - 0x528c]
mov dword [ebp - 0x2598], edx
mov eax, dword [ebp - 0x25c4]
mov ecx, dword [eax + 0x50]
mov dword [ebp - 0x2618], ecx
mov dword [ebp - 0x25b0], 0
mov dword [ebp - 0x2594], 0
call fcn.1007db50
test eax, eax
je 0x100772bd
mov edx, 6
shl edx, 2
mov eax, dword [0x365aa9c]
mov ecx, dword [eax + edx]
xor ecx, 0
mov dword [ebp - 0x5418], ecx
jmp 0x100772c7
mov dword [ebp - 0x5418], 0
mov edx, 0x25
shl edx, 2
mov eax, dword [0x365aa9c]
mov ecx, dword [eax + edx]
xor ecx, 0
xor ecx, dword [ebp - 0x5418]
mov dword [ebp - 0x248c], ecx
mov edx, 0xe
shl edx, 2
mov eax, dword [0x365aa9c]
mov ecx, dword [0x365aa9c]
mov esi, dword [0x365aa9c]
mov ebx, dword [esi + 0x70]
xor ebx, dword [ecx + 0x54]
xor ebx, dword [eax + edx]
and ebx, 0x200000
neg ebx
sbb ebx, ebx
neg ebx
movzx edx, bl
test edx, edx
je 0x10077945
mov dword [0x3656254], 0x36440f0
mov eax, dword [0x36649d8]
mov ecx, dword [eax]
mov dword [ebp - 0x2594], ecx
mov edx, dword [0x36649d8]
add edx, 4
mov dword [0x36649d8], edx
mov eax, dword [ebp - 0x2594]
add eax, 0x10000
mov dword [ebp - 0x2788], eax
mov dword [ebp - 0x2784], 0xa
push 0
call fcn.1008a49f
add esp, 4
mov dword [ebp - 0x5290], eax
mov ecx, dword [ebp - 0x5290]
mov dword [ebp - 0x2664], ecx
mov edx, dword [0x363f1b0]
push edx
call fcn.1007db60
add esp, 4
movzx eax, al
test eax, eax
je 0x100773b2
mov ecx, 0x1c
shl ecx, 2
mov edx, dword [0x365aa9c]
mov eax, dword [edx + ecx]
xor eax, 0
xor eax, dword [ebp - 0x248c]
mov dword [ebp - 0x248c], eax
mov dword [ebp - 0x2660], 0
cmp dword [ebp - 0x2660], 0
jne 0x100774ca
mov ecx, dword [ebp - 0x2784]
sub ecx, 1
mov dword [ebp - 0x2784], ecx
jmp 0x10077402
cmp dword [ebp - 0x2784], 0
jbe 0x10077422
lea ecx, [ebp - 0x2664]
call fcn.10018a20
and eax, 0x3ff0000
mov dword [0x36649ec], eax
jmp 0x10077435
cmp dword [ebp - 0x2784], 0
jne 0x10077435
mov dword [0x36649ec], 0
push 0x40
push 0x2000
mov eax, dword [ebp - 0x2788]
push eax
mov ecx, dword [0x36649ec]
push ecx
call dword [0x363f1b0]
mov dword [ebp - 0x2660], eax
cmp dword [ebp - 0x2660], 0
je 0x100774c5
push 0x40
push 0x1000
mov edx, dword [ebp - 0x2788]
push edx
mov eax, dword [0x36649ec]
push eax
call dword [0x363f1b0]
mov dword [ebp - 0x2660], eax
cmp dword [ebp - 0x2660], 0
je 0x100774c5
mov ecx, dword [ebp - 0x2660]
mov dword [0x36649ec], ecx
mov edx, dword [ebp - 0x2660]
cmp edx, dword [ebp - 0x2598]
jbe 0x100774c5
mov eax, dword [ebp - 0x2598]
add eax, dword [ebp - 0x2618]
cmp dword [ebp - 0x2660], eax
jae 0x100774c5
mov ecx, dword [ebp - 0x2788]
shr ecx, 2
mov dword [ebp - 0x2788], ecx
jmp 0x100773bc
call fcn.1007db50
test eax, eax
je 0x100774e1
mov edx, dword [ebp - 0x2788]
shr edx, 1
mov dword [ebp - 0x2788], edx
mov eax, 1
test eax, eax
je 0x10077573
cmp dword [ebp - 0x2594], 0xffff
jae 0x10077506
mov dword [ebp - 0x541c], 0xffff
jmp 0x10077512
mov ecx, dword [ebp - 0x2594]
mov dword [ebp - 0x541c], ecx
mov edx, dword [ebp - 0x541c]
mov dword [ebp - 0x2794], edx
push 0
mov eax, dword [ebp - 0x248c]
push eax
lea ecx, [ebp - 0x2794]
push ecx
mov edx, dword [ebp - 0x2660]
push edx
mov eax, dword [0x36649d8]
push eax
call fcn.1002d4e0
add esp, 0x14
mov dword [0x36649d8], eax
cmp dword [0x36649d8], 0
je 0x1007755a
cmp dword [ebp - 0x2794], 0
jne 0x1007755c
jmp 0x10077573
mov ecx, dword [ebp - 0x2660]
add ecx, dword [ebp - 0x2794]
mov dword [ebp - 0x2660], ecx
jmp 0x100774e1
cmp dword [0x36649d8], 0
jne 0x100775a2
mov edx, dword [ebp + 8]
mov eax, dword [edx]
mov dword [eax], 0
push 0x36440d0
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 4]
push edx
call fcn.10087500
add esp, 8
xor eax, eax
jmp 0x10079dd1
mov eax, 0x23
shl eax, 2
mov ecx, dword [0x365aa9c]
mov edx, dword [0x365aa9c]
mov esi, dword [0x365aa9c]
mov ebx, dword [esi + 0x70]
xor ebx, dword [edx + 0x54]
xor ebx, dword [ecx + eax]
and ebx, 0x40
neg ebx
sbb ebx, ebx
neg ebx
movzx eax, bl
test eax, eax
je 0x100775f7
push pe_nt_image_headers32
lea ecx, [ebp - 0x2774]
push ecx
mov edx, dword [0x3656788]
push edx
call fcn.100869c0
add esp, 0xc
push eax
call dword [0x363f24c]
call fcn.1007db50
neg eax
sbb eax, eax
and eax, 2
add eax, 1
mov ecx, dword [0x36649d8]
imul eax, dword [ecx]
mov dword [ebp - 0x2670], eax
mov edx, dword [0x36649d8]
add edx, 4
mov dword [0x36649d8], 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 0x10077652
mov dword [ebp - 0x5420], 0xffff
jmp 0x1007765e
mov edx, dword [ebp - 0x277c]
mov dword [ebp - 0x5420], edx
mov eax, dword [ebp - 0x5420]
push eax
call fcn.10087630
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 0x1007771d
cmp dword [ebp - 0x277c], 0xffff
jae 0x100776b0
mov dword [ebp - 0x5424], 0xffff
jmp 0x100776bc
mov ecx, dword [ebp - 0x277c]
mov dword [ebp - 0x5424], ecx
mov edx, dword [ebp - 0x5424]
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 [0x36649d8]
push eax
call fcn.1002d4e0
add esp, 0x14
mov dword [0x36649d8], eax
cmp dword [0x36649d8], 0
je 0x10077704
cmp dword [ebp - 0x2798], 0
jne 0x10077706
jmp 0x1007771d
mov ecx, dword [ebp - 0x2778]
add ecx, dword [ebp - 0x2798]
mov dword [ebp - 0x2778], ecx
jmp 0x1007768b
cmp dword [0x36649d8], 0
jne 0x1007774c
mov edx, dword [ebp + 8]
mov eax, dword [edx]
mov dword [eax], 0
push 0x36440c0
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 4]
push edx
call fcn.10087500
add esp, 8
xor eax, eax
jmp 0x10079dd1
call dword [0x363f334]
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.1007db50
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.10087630
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 0x10077909
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 [0x36649ec]
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 [0x36649ec]
lea edx, [eax + edx + 4]
sub ecx, edx
mov dword [ebp - 0x27a8], ecx
mov eax, dword [0x36649ec]
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 0x100777d2
mov eax, dword [ebp - 0x2780]
mov dword [eax], 0
mov ecx, dword [ebp - 0x2780]
add ecx, 4
mov dword [ebp - 0x2780], ecx
call dword [0x363f334]
mov edx, dword [ebp - 0x278c]
mov dword [ebp - 0x51a0], edx
mov eax, dword [ebp - 0x51a0]
push eax
call fcn.1008762b
add esp, 4
mov dword [0x3656254], 0x36440b8
mov dword [ebp - 0x2614], 0x35dbea0
mov dword [ebp - 0x2610], 0x35dbdb0
mov dword [ebp - 0x260c], 0x35dbde0
mov dword [ebp - 0x2608], 0x35dbe00
mov dword [ebp - 0x2604], 0x35dbe60
mov dword [ebp - 0x2600], 0x35dbe70
mov dword [ebp - 0x25fc], 0x35dbe80
mov dword [ebp - 0x25f8], 0x35dbee0
mov dword [ebp - 0x25f4], 0x35dbf20
mov dword [ebp - 0x25f0], 0x35dbe90
mov dword [ebp - 0x25ec], 0x35dbea0
mov dword [ebp - 0x25e8], 0x35dbdb0
mov dword [ebp - 0x25e4], 0x35dbde0
mov dword [ebp - 0x25e0], 0x35dbe00
mov dword [ebp - 0x25dc], 0x35dbe70
mov dword [ebp - 0x25d8], 0x35dbe80
mov dword [ebp - 0x25d4], 0x35dbe60
mov dword [ebp - 0x25d0], 0x35dbee0
mov dword [ebp - 0x25cc], 0x35dbf20
mov dword [ebp - 0x25c8], 0x35dbf60
mov dword [ebp - 0x2630], 0
mov dword [ebp - 0x2590], 0
mov dword [ebp - 0x265c], 0
mov dword [ebp - 0x2658], 0
mov ecx, 0xe
shl ecx, 2
mov edx, dword [0x365aa9c]
mov eax, dword [0x365aa9c]
mov esi, dword [0x365aa9c]
mov ebx, dword [esi + 0x70]
xor ebx, dword [eax + 0x54]
xor ebx, dword [edx + ecx]
and ebx, 0x400000
neg ebx
sbb ebx, ebx
neg ebx
movzx ecx, bl
test ecx, ecx
je 0x10077d4a
mov dword [0x3656254], 0x36440b0
mov edx, dword [0x36649d8]
mov eax, dword [edx]
mov dword [ebp - 0x2590], eax
mov ecx, dword [0x36649d8]
add ecx, 4
mov dword [0x36649d8], ecx
call fcn.1007db50
mov ecx, eax
neg ecx
sbb ecx, ecx
neg ecx
add ecx, 1
mov edx, dword [0x36649d8]
mov eax, dword [edx]
xor edx, edx
div ecx
mov dword [ebp - 0x265c], eax
mov eax, dword [0x36649d8]
add eax, 4
mov dword [0x36649d8], 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.10087630
add esp, 4
mov dword [ebp - 0x51a4], eax
mov eax, dword [ebp - 0x51a4]
mov dword [ebp - 0x2630], eax
push 0x14
call fcn.10086e2e
add esp, 4
mov dword [ebp - 0x51ac], eax
mov dword [ebp - 4], 1
cmp dword [ebp - 0x51ac], 0
je 0x10077b72
mov ecx, dword [0x3664cfc]
mov dword [ebp - 0x52a4], 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 - 0x52a4]
mov dword [ecx + 0x10], edx
mov eax, dword [ebp - 0x51ac]
mov dword [ebp - 0x5428], eax
jmp 0x10077b7c
mov dword [ebp - 0x5428], 0
mov ecx, dword [ebp - 0x5428]
mov dword [ebp - 0x51a8], ecx
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x51a8]
mov dword [0x3664cfc], edx
mov eax, dword [0x3664cfc]
mov byte [eax + 0xc], 1
mov ecx, 0x25
shl ecx, 2
mov edx, dword [0x365aa9c]
mov eax, dword [edx + ecx]
xor eax, 0
mov dword [ebp - 0x52a8], eax
mov ecx, dword [ebp - 0x52a8]
mov dword [ebp - 0x27b8], ecx
mov dword [ebp - 0x27bc], 0
jmp 0x10077be5
mov edx, dword [ebp - 0x27bc]
add edx, 1
mov dword [ebp - 0x27bc], edx
mov eax, dword [ebp - 0x27bc]
cmp eax, dword [ebp - 0x265c]
jae 0x10077c2a
push 0x14
lea ecx, [ebp - 0x27b8]
call fcn.1000b5c0
mov esi, eax
push pe_nt_image_headers32
lea ecx, [ebp - 0x27b8]
call fcn.1000b5c0
add eax, dword [ebp + esi*4 - 0x2614]
mov ecx, dword [ebp - 0x27bc]
mov edx, dword [ebp - 0x2630]
mov dword [edx + ecx*4], eax
jmp 0x10077bd6
mov eax, dword [0x36649d8]
mov ecx, dword [eax]
mov dword [ebp - 0x27b0], ecx
mov edx, dword [0x36649d8]
add edx, 4
mov dword [0x36649d8], 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.10087630
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 0x10077d1b
cmp dword [ebp - 0x27b4], 0xffff
jae 0x10077cad
mov dword [ebp - 0x542c], 0xffff
jmp 0x10077cb9
mov edx, dword [ebp - 0x27b4]
mov dword [ebp - 0x542c], edx
mov eax, dword [ebp - 0x542c]
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 [0x36649d8]
push ecx
call fcn.1002d4e0
add esp, 0x14
mov dword [0x36649d8], eax
cmp dword [0x36649d8], 0
je 0x10077d02
cmp dword [ebp - 0x27c0], 0
jne 0x10077d04
jmp 0x10077d1b
mov edx, dword [ebp - 0x27ac]
add edx, dword [ebp - 0x27c0]
mov dword [ebp - 0x27ac], edx
jmp 0x10077c88
cmp dword [0x36649d8], 0
jne 0x10077d4a
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov dword [ecx], 0
push 0x36440a0
mov edx, dword [ebp + 8]
mov eax, dword [edx + 4]
push eax
call fcn.10087500
add esp, 8
xor eax, eax
jmp 0x10079dd1
mov dword [0x3656254], 0x36440b0
mov ecx, 0xe
shl ecx, 2
mov edx, dword [0x365aa9c]
mov eax, dword [0x365aa9c]
mov esi, dword [0x365aa9c]
mov ebx, dword [esi + 0x70]
xor ebx, dword [eax + 0x54]
xor ebx, dword [edx + ecx]
and ebx, 0x200
neg ebx
sbb ebx, ebx
neg ebx
movzx ecx, bl
test ecx, ecx
je 0x10077e8e
mov dword [0x3656254], 0x3644098
call fcn.1007db50
mov ecx, eax
neg ecx
sbb ecx, ecx
and ecx, 3
add ecx, 1
mov edx, dword [0x36649d8]
mov eax, dword [edx]
xor edx, edx
div ecx
mov dword [0x3664cf8], eax
mov eax, dword [0x36649d8]
add eax, 4
mov dword [0x36649d8], eax
mov ecx, dword [0x3664cf8]
add ecx, 0x10000
push ecx
call fcn.10087630
add esp, 4
mov dword [ebp - 0x51b4], eax
mov edx, dword [ebp - 0x51b4]
mov dword [0x36649f4], edx
mov eax, dword [0x36649f4]
mov dword [ebp - 0x27c4], eax
mov ecx, 1
test ecx, ecx
je 0x10077e8e
mov edx, dword [0x3664cf8]
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 [0x36649d8]
push edx
call fcn.1002d4e0
add esp, 0x14
mov dword [0x36649d8], eax
cmp dword [0x36649d8], 0
jne 0x10077e6c
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov dword [ecx], 0
push 0x3644088
mov edx, dword [ebp + 8]
mov eax, dword [edx + 4]
push eax
call fcn.10087500
add esp, 8
xor eax, eax
jmp 0x10079dd1
cmp dword [ebp - 0x27c8], 0
jne 0x10077e77
jmp 0x10077e8e
mov ecx, dword [ebp - 0x27c4]
add ecx, dword [ebp - 0x27c8]
mov dword [ebp - 0x27c4], ecx
jmp 0x10077df8
mov dword [0x3656254], 0x3644080
mov edx, dword [0x365c8ac]
mov eax, dword [edx + 0x630]
mov dword [ebp - 0x2634], eax
call fcn.1007db50
test eax, eax
je 0x10077ecf
mov ecx, 3
shl ecx, 2
mov edx, dword [0x365aa9c]
mov eax, dword [edx + ecx]
xor eax, 0
mov dword [ebp - 0x5430], eax
jmp 0x10077edf
mov ecx, 0x365a450
call fcn.10079e60
mov dword [ebp - 0x5430], eax
mov ecx, 5
shl ecx, 2
mov edx, dword [0x365aa9c]
mov eax, dword [edx + ecx]
xor eax, 0
xor eax, dword [ebp - 0x2634]
xor eax, dword [ebp - 0x5430]
mov dword [ebp - 0x25ac], eax
mov ecx, dword [0x365c8ac]
mov edx, dword [ecx + 0x630]
mov dword [ebp - 0x52cc], edx
mov eax, dword [ebp - 0x52cc]
push eax
push 0x36423e8
lea ecx, [ebp - 0x258c]
push ecx
call fcn.100873be
add esp, 0xc
lea edx, [ebp - 0x258c]
push edx
lea ecx, [ebp - 0x51d0]
call fcn.1001d8f0
mov dword [ebp - 4], 2
push 0x20
lea eax, [ebp - 0x51d0]
push eax
call fcn.10086490
add esp, 8
mov dword [ebp - 0x25b8], eax
mov dword [ebp - 4], 0xffffffff
push 0
push 1
lea ecx, [ebp - 0x51d0]
call fcn.1001dbd0
mov dword [0x3656254], 0x3644078
call fcn.1007db60
mov edx, 6
shl edx, 2
mov eax, dword [0x365aa9c]
mov ecx, dword [eax + edx]
xor ecx, 0
mov dword [ebp - 0x5314], ecx
mov edx, 0x21
shl edx, 2
mov eax, dword [0x365aa9c]
mov ecx, dword [eax + edx]
xor ecx, 0
xor ecx, dword [ebp - 0x5314]
mov dword [ebp - 0x5318], ecx
mov edx, dword [ebp - 0x5318]
mov dword [0x365aa88], edx
mov eax, 1
test eax, eax
je 0x10078581
mov ecx, dword [0x365aa88]
mov dword [ebp - 0x531c], ecx
mov edx, dword [0x36649d8]
mov eax, dword [edx]
xor eax, dword [ebp - 0x531c]
mov dword [ebp - 0x27e0], eax
mov ecx, dword [0x36649d8]
add ecx, 4
mov dword [0x36649d8], ecx
cmp dword [ebp - 0x27e0], 0
jne 0x10078015
jmp 0x10078581
mov edx, dword [ebp - 0x27e0]
and edx, 0x80000000
je 0x10078040
mov eax, dword [ebp - 0x27e0]
and eax, 0x7fffffff
mov ecx, dword [ebp - 0x25c4]
add eax, dword [ecx + 0x88]
mov dword [ebp - 0x27e0], eax
mov edx, dword [0x365aa88]
mov dword [ebp - 0x5320], edx
mov eax, dword [0x36649d8]
mov ecx, dword [eax]
xor ecx, dword [ebp - 0x5320]
mov dword [ebp - 0x27d8], ecx
mov edx, dword [0x36649d8]
add edx, 4
mov dword [0x36649d8], edx
mov eax, dword [ebp - 0x27d8]
add eax, 0x10000
push eax
call fcn.10087630
add esp, 4
mov dword [ebp - 0x51d4], eax
mov ecx, dword [ebp - 0x51d4]
mov dword [ebp - 0x27dc], ecx
mov edx, dword [ebp - 0x27dc]
mov dword [ebp - 0x27d0], edx
mov eax, dword [ebp - 0x27d8]
add eax, 0x10000
push eax
push 0
mov ecx, dword [ebp - 0x27dc]
push ecx
call fcn.10086ea0
add esp, 0xc
mov edx, 1
test edx, edx
je 0x1007815c
mov eax, dword [ebp - 0x27d8]
add eax, 0x10000
mov dword [ebp - 0x27e4], eax
mov ecx, dword [ebp - 0x25b8]
push ecx
mov edx, dword [ebp - 0x25ac]
push edx
lea eax, [ebp - 0x27e4]
push eax
mov ecx, dword [ebp - 0x27d0]
push ecx
mov edx, dword [0x36649d8]
push edx
call fcn.1002d4e0
add esp, 0x14
mov dword [0x36649d8], eax
cmp dword [0x36649d8], 0
jne 0x1007813a
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov dword [ecx], 0
push 0x3644068
mov edx, dword [ebp + 8]
mov eax, dword [edx + 4]
push eax
call fcn.10087500
add esp, 8
xor eax, eax
jmp 0x10079dd1
cmp dword [ebp - 0x27e4], 0
jne 0x10078145
jmp 0x1007815c
mov ecx, dword [ebp - 0x27d0]
add ecx, dword [ebp - 0x27e4]
mov dword [ebp - 0x27d0], ecx
jmp 0x100780bd
mov edx, dword [ebp - 0x27d0]
sub edx, dword [ebp - 0x27dc]
mov dword [ebp - 0x27d4], edx
mov eax, dword [ebp - 0x27d4]
cmp eax, dword [ebp - 0x27d8]
jae 0x1007819a
mov ecx, dword [ebp - 0x27d8]
sub ecx, dword [ebp - 0x27d4]
push ecx
push 0
mov edx, dword [ebp - 0x27d0]
push edx
call fcn.10086ea0
add esp, 0xc
cmp dword [ebp - 0x25b0], 0
je 0x10078335
mov eax, dword [ebp - 0x2598]
add eax, dword [ebp - 0x27e0]
mov ecx, dword [ebp - 0x25b0]
cmp dword [ecx], eax
jb 0x10078335
mov edx, dword [ebp - 0x2598]
add edx, dword [ebp - 0x27e0]
add edx, dword [ebp - 0x27d8]
mov eax, dword [ebp - 0x25b0]
cmp dword [eax], edx
jae 0x10078335
mov ecx, 0xe
shl ecx, 2
mov edx, dword [0x365aa9c]
mov eax, dword [0x365aa9c]
mov esi, dword [0x365aa9c]
mov ebx, dword [esi + 0x70]
xor ebx, dword [eax + 0x54]
xor ebx, dword [edx + ecx]
shr ebx, 0x18
mov byte [ebp - 0x27ed], bl
movzx ecx, byte [ebp - 0x27ed]
shl ecx, 0x18
movzx edx, byte [ebp - 0x27ed]
shl edx, 0x10
or ecx, edx
movzx eax, byte [ebp - 0x27ed]
shl eax, 8
or ecx, eax
movzx edx, byte [ebp - 0x27ed]
or ecx, edx
mov dword [ebp - 0x27ec], ecx
mov eax, dword [ebp - 0x25b0]
mov dword [ebp - 0x27e8], eax
mov ecx, dword [ebp - 0x27e8]
cmp dword [ecx], 0
je 0x10078335
mov edx, dword [ebp - 0x27e8]
mov eax, dword [edx]
mov dword [ebp - 0x27f4], eax
mov ecx, dword [ebp - 0x27e8]
add ecx, 4
mov dword [ebp - 0x27e8], ecx
mov edx, dword [ebp - 0x27e8]
mov eax, dword [edx]
mov dword [ebp - 0x27f8], eax
mov ecx, dword [ebp - 0x27e8]
add ecx, 4
mov dword [ebp - 0x27e8], ecx
mov edx, dword [ebp - 0x2598]
add edx, dword [ebp - 0x27e0]
cmp dword [ebp - 0x27f4], edx
jbe 0x10078322
mov eax, dword [ebp - 0x2598]
add eax, dword [ebp - 0x27e0]
add eax, dword [ebp - 0x27d8]
cmp dword [ebp - 0x27f4], eax
jae 0x10078322
mov ecx, dword [ebp - 0x2598]
add ecx, dword [ebp - 0x27e0]
mov edx, dword [ebp - 0x27f4]
sub edx, ecx
mov dword [ebp - 0x27fc], edx
mov al, byte [0x365aa74]
mov byte [ebp - 0x5321], al
movzx ecx, byte [ebp - 0x5321]
test ecx, ecx
je 0x1007830c
mov edx, dword [ebp - 0x27f8]
xor edx, dword [ebp - 0x27ec]
mov eax, dword [ebp - 0x27dc]
add eax, dword [ebp - 0x27fc]
mov dword [eax], edx
jmp 0x10078320
mov ecx, dword [ebp - 0x27dc]
add ecx, dword [ebp - 0x27fc]
mov edx, dword [ebp - 0x27f8]
mov dword [ecx], edx
jmp 0x10078330
mov eax, dword [ebp - 0x27f4]
mov ecx, dword [ebp - 0x27f8]
mov dword [eax], ecx
jmp 0x10078249
mov edx, dword [ebp - 0x27e0]
cmp edx, dword [ebp - 0x20]
jb 0x100784ac
mov eax, dword [ebp - 0x27e0]
cmp eax, dword [ebp - 0x18]
jae 0x100784ac
mov cl, byte [0x365aa74]
mov byte [ebp - 0x5322], cl
movzx edx, byte [ebp - 0x5322]
test edx, edx
je 0x100784ac
call fcn.1007db50
mov dword [ebp - 0x2804], eax
mov eax, dword [ebp - 0x27dc]
mov dword [ebp - 0x27d0], eax
mov dword [ebp - 0x2800], 0
mov ecx, dword [ebp - 0x27dc]
add ecx, dword [ebp - 0x27d4]
cmp dword [ebp - 0x27d0], ecx
jae 0x100784ac
mov edx, dword [ebp - 0x2800]
and edx, 0x80000007
jns 0x100783ba
dec edx
or edx, 0xfffffff8
inc edx
movzx eax, byte [edx + 0x3643b60]
mov ecx, dword [0x365aa9c]
mov edx, dword [ecx + eax*4]
xor edx, 0
mov dword [ebp - 0x5328], edx
mov eax, dword [ebp - 0x2800]
and eax, 0x80000007
jns 0x100783e5
dec eax
or eax, 0xfffffff8
inc eax
movzx ecx, byte [eax + 0x3643b61]
mov edx, dword [0x365aa9c]
mov eax, dword [edx + ecx*4]
xor eax, 0
mov dword [ebp - 0x532c], eax
mov ecx, dword [ebp - 0x2800]
and ecx, 0x80000007
jns 0x10078411
dec ecx
or ecx, 0xfffffff8
inc ecx
movzx edx, byte [ecx + 0x3643b62]
mov eax, dword [0x365aa9c]
mov ecx, dword [eax + edx*4]
xor ecx, 0
mov dword [ebp - 0x5330], ecx
push 0
mov esi, dword [ebp - 0x2800]
shl esi, 4
mov edi, dword [ebp - 0x5328]
xor edi, dword [ebp - 0x532c]
xor edi, dword [ebp - 0x5330]
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, 0x365a450
call fcn.10075a20
mov edx, dword [0x36649e8]
xor eax, dword [edx + esi*4]
xor eax, dword [ebp - 0x2804]
push eax
mov eax, dword [ebp - 0x27d0]
push eax
call fcn.1007bbb0
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 0x1007838f
mov eax, dword [ebp - 0x27e0]
and eax, 0xfff
jne 0x100784e9
mov ecx, dword [ebp - 0x27d8]
and ecx, 0xfff
je 0x100784e9
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 [0x363f144]
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.10086ab0
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 [0x363f144]
mov edx, dword [ebp - 0x27dc]
mov dword [ebp - 0x51d8], edx
mov eax, dword [ebp - 0x51d8]
push eax
call fcn.1008762b
add esp, 4
jmp 0x10077fcb
mov dword [0x365aa88], 0
cmp dword [ebp - 0x2594], 0
je 0x100785cb
lea ecx, [ebp - 0x2808]
push ecx
push 0x20
mov edx, dword [ebp - 0x2594]
push edx
mov eax, dword [0x36649ec]
push eax
call dword [0x363f144]
mov ecx, dword [ebp - 0x25b0]
mov dword [ebp - 0x51dc], ecx
mov edx, dword [ebp - 0x51dc]
push edx
call fcn.1008762b
add esp, 4
mov dword [ebp - 0x264c], 0
lea eax, [ebp - 0x2654]
push eax
push 0x360c250
call dword [0x365a0d8]
add esp, 8
mov ecx, 0xe
shl ecx, 2
mov edx, dword [0x365aa9c]
mov eax, dword [0x365aa9c]
mov esi, dword [0x365aa9c]
mov ebx, dword [esi + 0x70]
xor ebx, dword [eax + 0x54]
xor ebx, dword [edx + ecx]
and ebx, 0x80
neg ebx
sbb ebx, ebx
neg ebx
movzx ecx, bl
test ecx, ecx
je 0x10078677
mov edx, 0xe
shl edx, 2
mov eax, dword [0x365aa9c]
mov ecx, dword [0x365aa9c]
mov esi, dword [0x365aa9c]
mov ebx, dword [esi + 0x70]
xor ebx, dword [ecx + 0x54]
xor ebx, dword [eax + edx]
and ebx, 0x10
neg ebx
sbb ebx, ebx
neg ebx
movzx edx, bl
test edx, edx
je 0x10078677
mov dword [ebp - 0x28a4], 0x94
lea eax, [ebp - 0x28a4]
push eax
call dword [0x363f11c]
cmp dword [ebp - 0x2894], 2
je 0x10078677
cli
not esp
not esp
sti
mov dword [0x3656254], 0x3644060
mov ecx, dword [0x36649d8]
mov edx, dword [ecx]
mov dword [ebp - 0x25a8], edx
mov eax, dword [0x36649d8]
add eax, 4
mov dword [0x36649d8], eax
call fcn.1007db50
test eax, eax
je 0x100786b5
mov ecx, dword [ebp - 0x25a8]
shr ecx, 1
mov dword [ebp - 0x5434], ecx
jmp 0x100786c7
mov edx, dword [ebp - 0x25a8]
add edx, 0x10000
mov dword [ebp - 0x5434], edx
mov eax, dword [ebp - 0x5434]
push eax
call fcn.10087630
add esp, 4
mov dword [ebp - 0x51e0], eax
mov ecx, dword [ebp - 0x51e0]
mov dword [ebp - 0x2484], ecx
mov edx, 0xa
shl edx, 2
mov eax, dword [0x365aa9c]
mov ecx, dword [0x365aa9c]
mov esi, dword [0x365aa9c]
mov edi, dword [0x365aa9c]
mov edi, dword [edi + 0x18]
xor edi, dword [esi + 0x70]
xor edi, dword [ecx + 0x84]
xor edi, dword [eax + edx]
mov dword [ebp - 0x25c0], edi
mov dword [0x3656254], 0x3644058
mov ecx, 0x365a450
call fcn.10079df0
mov esi, eax
xor esi, dword [ebp - 0x25c0]
call fcn.1007db50
xor esi, eax
mov dword [ebp - 0x2648], esi
mov dword [0x3656254], 0x3644050
mov edx, dword [ebp - 0x2484]
mov dword [ebp - 0x2480], edx
mov eax, 1
test eax, eax
je 0x1007880a
mov ecx, dword [ebp - 0x25a8]
add ecx, 0x10000
mov dword [ebp - 0x28a8], ecx
mov dword [0x3656254], 0x3644048
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 [0x36649d8]
push edx
call fcn.1002d4e0
add esp, 0x14
mov dword [0x36649d8], eax
mov dword [0x3656254], 0x3644040
cmp dword [0x36649d8], 0
jne 0x100787e8
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov dword [ecx], 0
push 0x3644030
mov edx, dword [ebp + 8]
mov eax, dword [edx + 4]
push eax
call fcn.10087500
add esp, 8
xor eax, eax
jmp 0x10079dd1
cmp dword [ebp - 0x28a8], 0
jne 0x100787f3
jmp 0x1007880a
mov ecx, dword [ebp - 0x2480]
add ecx, dword [ebp - 0x28a8]
mov dword [ebp - 0x2480], ecx
jmp 0x1007875b
mov dword [0x3656254], 0x3644028
mov dword [0x3656254], 0x3644020
mov dword [0x3656254], 0x3644018
mov byte [ebp - 0x2641], 0
mov edx, 2
shl edx, 2
mov eax, dword [0x365aa9c]
mov ecx, dword [eax + edx]
xor ecx, 0
mov dword [ebp - 0x5334], ecx
mov edx, dword [ebp - 0x5334]
mov dword [ebp - 0x25b4], edx
mov eax, 0x1c
shl eax, 2
mov ecx, dword [0x365aa9c]
mov edx, dword [ecx + eax]
xor edx, 0
imul edx, edx, 0xa
add edx, 1
mov dword [ebp - 0x5338], edx
mov eax, dword [ebp - 0x5338]
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 0x10079233
mov eax, dword [ebp - 0x2480]
mov dword [ebp - 0x29d0], eax
push 0
mov ecx, dword [ebp - 0x2480]
push ecx
call fcn.10087300
add esp, 8
add eax, 1
mov dword [ebp - 0x2480], eax
mov edx, dword [ebp - 0x29d0]
movsx eax, byte [edx]
test eax, eax
jne 0x100788ef
jmp 0x10079233
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 [0x3640055]
mov byte [ebp - 0x29cc], cl
push 0x103
push 0
lea edx, [ebp - 0x29cb]
push edx
call fcn.10086ea0
add esp, 0xc
mov eax, dword [ebp - 0x29d0]
push eax
call fcn.1004bf90
mov dword [ebp - 0x28c0], eax
cmp dword [ebp - 0x28c0], 0
jne 0x10078a10
cmp dword [ebp - 0x28c0], 0
jne 0x100789d3
push 1
lea ecx, [ebp - 0x2adc]
push ecx
call fcn.1006e500
add esp, 8
push 0x5c
lea edx, [ebp - 0x2adc]
push edx
call fcn.10089960
add esp, 8
mov dword [ebp - 0x2ae0], eax
cmp dword [ebp - 0x2ae0], 0
je 0x100789d3
mov eax, dword [ebp - 0x29d0]
push eax
mov ecx, dword [ebp - 0x2ae0]
add ecx, 1
push ecx
call fcn.10087500
add esp, 8
push 8
push 0
lea edx, [ebp - 0x2adc]
push edx
call fcn.1004c3d0
mov dword [ebp - 0x28c0], eax
cmp dword [ebp - 0x28c0], 0
jne 0x10078a10
push 1
lea eax, [ebp - 0x2adc]
push eax
call fcn.1006e500
add esp, 8
lea ecx, [ebp - 0x2adc]
push ecx
lea edx, [ebp - 0x29cc]
push edx
mov eax, dword [ebp - 0x29d0]
push eax
call fcn.1004b840
add esp, 0xc
mov dword [ebp - 0x28c0], eax
cmp dword [ebp - 0x28c0], 0
jne 0x10078a72
mov ecx, dword [ebp + 8]
mov edx, dword [ecx]
mov dword [edx], 3
movsx eax, byte [ebp - 0x29cc]
test eax, eax
je 0x10078a3d
lea ecx, [ebp - 0x29cc]
mov dword [ebp - 0x5438], ecx
jmp 0x10078a49
mov edx, dword [ebp - 0x29d0]
mov dword [ebp - 0x5438], edx
call dword [0x363f354]
push eax
mov eax, dword [ebp - 0x5438]
push eax
push 0x3644004
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 4]
push edx
call fcn.100873be
add esp, 0x10
xor eax, eax
jmp 0x10079dd1
mov eax, dword [ebp - 0x28c0]
push eax
call fcn.10049910
add esp, 4
mov dword [ebp - 0x28c4], 0
mov ecx, dword [0x365aab4]
mov dword [ebp - 0x533c], ecx
mov edx, dword [ebp - 0x28c0]
cmp edx, dword [ebp - 0x533c]
jne 0x10078ab4
mov dword [ebp - 0x28c4], 0x3655988
jmp 0x10078b8c
mov dword [ebp - 0x2ae4], 0
mov dword [ebp - 0x2ae8], 0x365594c
jmp 0x10078ae8
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 0x10078b8c
mov eax, dword [ebp - 0x2ae8]
mov ecx, dword [eax + 8]
and ecx, 1
je 0x10078b3c
mov edx, 0xe
shl edx, 2
mov eax, dword [0x365aa9c]
mov ecx, dword [0x365aa9c]
mov esi, dword [0x365aa9c]
mov ebx, dword [esi + 0x70]
xor ebx, dword [ecx + 0x54]
xor ebx, dword [eax + edx]
and ebx, 0x80
neg ebx
sbb ebx, ebx
neg ebx
movzx edx, bl
test edx, edx
je 0x10078b3c
jmp 0x10078aca
mov eax, dword [0x365aa9c]
mov ecx, dword [0x365aa9c]
mov edx, dword [0x365aa9c]
mov esi, dword [0x365aa9c]
mov esi, dword [esi + 0x18]
xor esi, dword [edx + 0x54]
xor esi, dword [ecx + 0x48]
xor esi, dword [eax + 8]
mov eax, dword [ebp - 0x2ae4]
mov ecx, dword [0x365d204]
xor esi, dword [ecx + eax*4]
cmp dword [ebp - 0x28c0], esi
jne 0x10078b87
mov edx, dword [ebp - 0x2ae8]
mov eax, dword [edx + 4]
mov dword [ebp - 0x28c4], eax
jmp 0x10078b8c
jmp 0x10078aca
mov byte [ebp - 0x28b5], 0
cmp dword [ebp - 0x2630], 0
jne 0x10078bd0
mov cl, byte [0x365aa74]
mov byte [ebp - 0x533d], cl
movzx edx, byte [ebp - 0x533d]
test edx, edx
je 0x10078bd0
mov eax, dword [ebp - 0x29d4]
cmp eax, dword [ebp - 0x20]
jb 0x10078bd0
mov ecx, dword [ebp - 0x29d4]
cmp ecx, dword [ebp - 0x18]
jae 0x10078bd0
mov byte [ebp - 0x28b5], 1
mov edx, dword [ebp - 0x28b4]
add edx, 1
mov dword [ebp - 0x28b4], edx
cmp dword [ebp - 0x2630], 0
je 0x10078c35
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 0x10078c9d
movzx edx, byte [ebp - 0x28b5]
test edx, edx
je 0x10078c7f
xor ecx, ecx
mov eax, dword [ebp - 0x28b4]
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.10087630
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 0x10078c9d
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 0x10078d80
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 [0x363f144]
push 0x14
call fcn.10086e2e
add esp, 4
mov dword [ebp - 0x51ec], eax
mov dword [ebp - 4], 3
cmp dword [ebp - 0x51ec], 0
je 0x10078d49
mov ecx, dword [0x3664cfc]
mov dword [ebp - 0x5344], 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 - 0x5344]
mov dword [ecx + 0x10], edx
mov eax, dword [ebp - 0x51ec]
mov dword [ebp - 0x543c], eax
jmp 0x10078d53
mov dword [ebp - 0x543c], 0
mov ecx, dword [ebp - 0x543c]
mov dword [ebp - 0x51e8], ecx
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x51e8]
mov dword [0x3664cfc], edx
mov eax, dword [0x3664cfc]
mov ecx, dword [ebp - 0x28b0]
mov dword [eax + 8], ecx
mov dword [ebp - 0x28ac], 0
call dword [0x363f334]
mov dword [ebp - 0x28bc], eax
mov edx, 1
test edx, edx
je 0x10079169
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.10086ab0
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 [0x3640055]
mov byte [ebp - 0x3afc], cl
push 0x7ff
push 0
lea edx, [ebp - 0x3afb]
push edx
call fcn.10086ea0
add esp, 0xc
movzx eax, word [ebp - 0x2af0]
test eax, eax
je 0x10078e9a
lea ecx, [ebp - 0x2640]
call fcn.10018a20
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.10086410
add esp, 0x10
movzx ecx, byte [ebp - 0x32f4]
cmp ecx, 0xff
jne 0x10078e79
mov dx, word [ebp - 0x32f3]
mov word [ebp - 0x3b00], dx
jmp 0x10078e9a
movsx eax, byte [ebp - 0x32f4]
test eax, eax
je 0x10078e9a
lea ecx, [ebp - 0x32f4]
push ecx
lea edx, [ebp - 0x3afc]
push edx
call fcn.10087500
add esp, 8
mov dword [ebp - 0x32f8], 0
movzx eax, word [ebp - 0x3b00]
test eax, eax
je 0x10078f1d
cmp dword [ebp - 0x28c4], 0
je 0x10078f09
mov ecx, dword [ebp - 0x28c4]
mov dword [ebp - 0x3b08], ecx
jmp 0x10078ed5
mov edx, dword [ebp - 0x3b08]
add edx, 0xc
mov dword [ebp - 0x3b08], edx
mov eax, dword [ebp - 0x3b08]
cmp dword [eax + 8], 0
je 0x10078f09
movzx ecx, word [ebp - 0x3b00]
mov edx, dword [ebp - 0x3b08]
movzx eax, word [edx + 4]
cmp ecx, eax
jne 0x10078f07
mov ecx, dword [ebp - 0x3b08]
mov edx, dword [ecx + 8]
mov dword [ebp - 0x32f8], edx
jmp 0x10078f09
jmp 0x10078ec6
mov eax, dword [ebp - 0x28ac]
add eax, 1
mov dword [ebp - 0x28ac], eax
jmp 0x10078ff7
movsx ecx, byte [ebp - 0x3afc]
test ecx, ecx
je 0x10078fb9
cmp dword [ebp - 0x28c4], 0
je 0x10078fa8
mov edx, dword [ebp - 0x28c4]
mov dword [ebp - 0x3b0c], edx
jmp 0x10078f52
mov eax, dword [ebp - 0x3b0c]
add eax, 0xc
mov dword [ebp - 0x3b0c], eax
mov ecx, dword [ebp - 0x3b0c]
cmp dword [ecx + 8], 0
je 0x10078fa8
push pe_nt_image_headers32
lea edx, [ebp - 0x3c0c]
push edx
mov eax, dword [ebp - 0x3b0c]
mov ecx, dword [eax]
push ecx
call fcn.100869c0
add esp, 0xc
lea edx, [ebp - 0x3c0c]
push edx
lea eax, [ebp - 0x3afc]
push eax
call fcn.1008c988
add esp, 8
test eax, eax
jne 0x10078fa6
mov ecx, dword [ebp - 0x3b0c]
mov edx, dword [ecx + 8]
mov dword [ebp - 0x32f8], edx
jmp 0x10078fa8
jmp 0x10078f43
mov eax, dword [ebp - 0x28ac]
add eax, 1
mov dword [ebp - 0x28ac], eax
jmp 0x10078ff7
push pe_nt_image_headers32
lea ecx, [ebp - 0x25b4]
call fcn.1000b5c0
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 0x10079169
cmp dword [ebp - 0x32f8], 0
jne 0x10079044
movzx eax, word [ebp - 0x3b00]
test eax, eax
je 0x1007901a
movzx ecx, word [ebp - 0x3b00]
mov dword [ebp - 0x5440], ecx
jmp 0x10079026
lea edx, [ebp - 0x3afc]
mov dword [ebp - 0x5440], edx
push 1
mov eax, dword [ebp - 0x5440]
push eax
mov ecx, dword [ebp - 0x28c0]
push ecx
call fcn.1004a8c0
add esp, 0xc
mov dword [ebp - 0x32f8], eax
cmp dword [ebp - 0x32f8], 0
jne 0x10079091
movzx edx, word [ebp - 0x3b00]
test edx, edx
je 0x10079067
movzx eax, word [ebp - 0x3b00]
mov dword [ebp - 0x5444], eax
jmp 0x10079073
lea ecx, [ebp - 0x3afc]
mov dword [ebp - 0x5444], ecx
push 0
mov edx, dword [ebp - 0x5444]
push edx
mov eax, dword [ebp - 0x28c0]
push eax
call fcn.1004a8c0
add esp, 0xc
mov dword [ebp - 0x32f8], eax
cmp dword [ebp - 0x32f8], 0
jne 0x10079139
movzx ecx, word [ebp - 0x3b00]
test ecx, ecx
je 0x100790fe
call dword [0x363f354]
cmp eax, 0x32
jne 0x100790c0
mov dword [ebp - 0x32f8], 0x35da8b0
jmp 0x100790fc
mov edx, dword [ebp + 8]
mov eax, dword [edx]
mov dword [eax], 3
call dword [0x363f354]
push eax
movzx ecx, word [ebp - 0x3b00]
push ecx
mov edx, dword [ebp - 0x29d0]
push edx
push 0x3643fe0
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 4]
push ecx
call fcn.100873be
add esp, 0x14
xor eax, eax
jmp 0x10079dd1
jmp 0x10079139
mov edx, dword [ebp + 8]
mov eax, dword [edx]
mov dword [eax], 3
call dword [0x363f354]
push eax
lea ecx, [ebp - 0x3afc]
push ecx
mov edx, dword [ebp - 0x29d0]
push edx
push 0x3643fbc
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 4]
push ecx
call fcn.100873be
add esp, 0x14
xor eax, eax
jmp 0x10079dd1
mov edx, dword [ebp - 0x25bc]
cmp edx, dword [ebp - 0x25a4]
jae 0x10079164
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 0x10078d96
call dword [0x363f334]
sub eax, dword [ebp - 0x28bc]
mov ecx, dword [ebp - 0x28ac]
imul ecx, ecx, 0x32
add ecx, 0x7d0
cmp eax, ecx
jbe 0x1007918f
mov byte [ebp - 0x2641], 1
cmp dword [ebp - 0x2630], 0
jne 0x1007922e
movzx edx, byte [ebp - 0x28b5]
test edx, edx
je 0x1007922e
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.1007bc30
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.10086ab0
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.1007bc30
add esp, 0xc
mov ecx, dword [ebp - 0x2488]
mov dword [ebp - 0x51f0], ecx
mov edx, dword [ebp - 0x51f0]
push edx
call fcn.1008762b
add esp, 4
jmp 0x100788aa
mov eax, dword [ebp - 0x2484]
mov dword [ebp - 0x51f4], eax
mov ecx, dword [ebp - 0x51f4]
push ecx
call fcn.1008762b
add esp, 4
cmp dword [ebp - 0x2630], 0
je 0x1007934e
mov edx, 7
shl edx, 2
mov eax, dword [0x365aa9c]
mov ecx, dword [eax + edx]
xor ecx, 0
mov dword [ebp - 0x53a8], ecx
mov edx, dword [ebp - 0x53a8]
mov dword [ebp - 0x3c14], edx
movzx esi, byte [ebp - 0x2641]
neg esi
sbb esi, esi
and esi, 0x100
add esi, 0x200
call fcn.1007db50
neg eax
sbb eax, eax
and eax, 0x100
add eax, 0x100
push eax
lea ecx, [ebp - 0x3c14]
call fcn.1000b5c0
add esi, eax
mov dword [ebp - 0x3c10], esi
mov dword [ebp - 0x3c18], 0
jmp 0x100792d9
mov eax, dword [ebp - 0x3c18]
add eax, 1
mov dword [ebp - 0x3c18], eax
mov ecx, dword [ebp - 0x3c18]
cmp ecx, dword [ebp - 0x3c10]
jae 0x1007934e
mov edx, dword [ebp - 0x265c]
push edx
lea ecx, [ebp - 0x3c14]
call fcn.1000b5c0
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.100895d0
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 0x100792ca
mov eax, dword [ebp - 0x25b8]
push eax
call fcn.100868b0
add esp, 4
mov dword [0x3656254], 0x3643fb4
mov ecx, dword [0x365c8ac]
mov edx, dword [ecx + 0x5e0]
mov dword [ebp - 0x25a0], edx
mov dword [ebp - 0x3c24], 0
jmp 0x10079394
mov eax, dword [ebp - 0x3c24]
add eax, 1
mov dword [ebp - 0x3c24], eax
mov ecx, dword [0x365c8ac]
mov dx, word [ecx + 0x5dc]
mov word [ebp - 0x53ca], dx
movzx eax, word [ebp - 0x53ca]
cmp dword [ebp - 0x3c24], eax
jge 0x100795bd
mov ecx, dword [ebp - 0x25a0]
mov edx, dword [ecx]
mov dword [ebp - 0x3c28], edx
mov eax, dword [ebp - 0x25a0]
add eax, 4
mov dword [ebp - 0x25a0], eax
mov ecx, dword [ebp - 0x25a0]
mov edx, dword [ecx]
mov dword [ebp - 0x3c2c], edx
mov eax, dword [ebp - 0x25a0]
add eax, 4
mov dword [ebp - 0x25a0], eax
mov ecx, dword [0x36649d8]
mov dx, word [ecx]
mov word [ebp - 0x3c30], dx
mov eax, dword [0x36649d8]
add eax, 2
mov dword [0x36649d8], eax
movzx ecx, word [ebp - 0x3c30]
push ecx
mov edx, dword [0x36649d8]
push edx
lea eax, [ebp - 0x4c34]
push eax
call fcn.10086ab0
add esp, 0xc
movzx ecx, word [ebp - 0x3c30]
add ecx, dword [0x36649d8]
mov dword [0x36649d8], ecx
cmp dword [ebp - 0x3c28], 0
je 0x100795b8
mov edx, dword [ebp - 0x3c2c]
mov dword [ebp - 0x4c3c], edx
lea eax, [ebp - 0x4c34]
mov dword [ebp - 0x4c40], eax
movzx ecx, word [ebp - 0x3c30]
add ecx, dword [ebp - 0x4c40]
mov dword [ebp - 0x4c44], ecx
jmp 0x1007948c
mov edx, dword [ebp - 0x4c40]
add edx, 1
mov dword [ebp - 0x4c40], edx
mov eax, dword [ebp - 0x4c40]
cmp eax, dword [ebp - 0x4c44]
jae 0x100794cc
push pe_nt_image_headers32
lea ecx, [ebp - 0x4c3c]
call fcn.1000b5c0
mov byte [ebp - 0x53dd], al
movzx ecx, byte [ebp - 0x53dd]
mov edx, dword [ebp - 0x4c40]
movzx eax, byte [edx]
xor eax, ecx
mov ecx, dword [ebp - 0x4c40]
mov byte [ecx], al
jmp 0x1007947d
lea edx, [ebp - 0x4c38]
push edx
push 4
movzx eax, word [ebp - 0x3c30]
push eax
mov ecx, dword [ebp - 0x2598]
add ecx, dword [ebp - 0x3c28]
push ecx
call dword [0x363f144]
mov dl, byte [0x365aa74]
mov byte [ebp - 0x53de], dl
movzx eax, byte [ebp - 0x53de]
test eax, eax
je 0x1007956b
push 0
movzx ecx, word [ebp - 0x3c30]
push ecx
mov edx, dword [ebp - 0x2598]
add edx, dword [ebp - 0x3c28]
push edx
call fcn.1007bc30
add esp, 0xc
movzx eax, word [ebp - 0x3c30]
push eax
lea ecx, [ebp - 0x4c34]
push ecx
mov edx, dword [ebp - 0x2598]
add edx, dword [ebp - 0x3c28]
push edx
call fcn.10086ab0
add esp, 0xc
push 1
movzx eax, word [ebp - 0x3c30]
push eax
mov ecx, dword [ebp - 0x2598]
add ecx, dword [ebp - 0x3c28]
push ecx
call fcn.1007bc30
add esp, 0xc
jmp 0x1007958f
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.10086ab0
add esp, 0xc
lea edx, [ebp - 0x4c38]
push edx
mov eax, dword [ebp - 0x4c38]
push eax
movzx ecx, word [ebp - 0x3c30]
push ecx
mov edx, dword [ebp - 0x2598]
add edx, dword [ebp - 0x3c28]
push edx
call dword [0x363f144]
jmp 0x10079385
mov dword [0x3656254], 0x3643fac
mov eax, dword [0x36649d8]
mov ecx, dword [eax]
mov dword [ebp - 0x262c], ecx
mov edx, dword [0x36649d8]
add edx, 4
mov dword [0x36649d8], edx
mov eax, dword [0x36649d8]
mov ecx, dword [eax]
mov dword [ebp - 0x263c], ecx
mov edx, dword [0x36649d8]
add edx, 4
mov dword [0x36649d8], edx
cmp dword [ebp - 0x262c], 0
je 0x1007967c
cmp dword [ebp - 0x263c], 0
je 0x1007967c
mov eax, dword [ebp - 0x25c4]
mov ecx, dword [ebp - 0x2598]
cmp ecx, dword [eax + 0x34]
je 0x1007967c
mov edx, dword [ebp - 0x263c]
push edx
mov eax, dword [ebp - 0x2598]
add eax, dword [ebp - 0x262c]
push eax
mov ecx, dword [ebp - 0x25c4]
mov edx, dword [ecx + 0x34]
push edx
mov eax, dword [ebp - 0x2598]
push eax
call fcn.1007bf90
add esp, 0x10
movzx ecx, al
test ecx, ecx
jne 0x1007967c
mov edx, dword [ebp + 8]
mov eax, dword [edx]
mov dword [eax], 7
push 0x3643f9c
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 4]
push edx
call fcn.10087500
add esp, 8
xor eax, eax
jmp 0x10079dd1
mov dword [0x3656254], 0x3643f94
cmp dword [ebp - 0x2658], 0
je 0x1007987f
cmp dword [ebp - 0x2630], 0
je 0x1007987f
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x4c4c], eax
mov ecx, dword [ebp - 0x18]
sub ecx, dword [ebp - 0x20]
add ecx, 1
mov dword [ebp - 0x4c54], ecx
lea edx, [ebp - 0x4c48]
push edx
push 4
mov eax, dword [ebp - 0x4c54]
push eax
mov ecx, dword [ebp - 0x2598]
add ecx, dword [ebp - 0x4c4c]
push ecx
call dword [0x363f144]
mov dl, byte [0x365aa74]
mov byte [ebp - 0x53df], dl
movzx eax, byte [ebp - 0x53df]
test eax, eax
je 0x10079710
push 0
mov ecx, dword [ebp - 0x4c54]
push ecx
mov edx, dword [ebp - 0x2598]
add edx, dword [ebp - 0x4c4c]
push edx
call fcn.1007bc30
add esp, 0xc
mov eax, dword [ebp - 0x25c4]
mov esi, dword [ebp - 0x2598]
sub esi, dword [eax + 0x34]
call fcn.1007db50
neg eax
sbb eax, eax
and eax, 0x1000
add esi, eax
mov dword [ebp - 0x4c50], esi
mov dword [ebp - 0x4c58], 0
jmp 0x10079750
mov ecx, dword [ebp - 0x4c58]
add ecx, 1
mov dword [ebp - 0x4c58], ecx
mov edx, dword [ebp - 0x4c58]
mov eax, dword [ebp - 0x2658]
cmp dword [eax + edx*4], 0
je 0x100797fd
mov ecx, dword [ebp - 0x4c58]
mov edx, dword [ebp - 0x2658]
mov eax, dword [ebp - 0x2598]
add eax, dword [edx + ecx*4]
mov dword [ebp - 0x4c5c], eax
mov ecx, dword [ebp - 0x4c5c]
mov edx, dword [ecx]
mov dword [ebp - 0x4c60], edx
cmp dword [ebp - 0x4c60], 0x90909090
je 0x100797f8
mov eax, dword [ebp - 0x4c60]
sub eax, dword [ebp - 0x4c50]
mov dword [ebp - 0x4c60], eax
mov ecx, dword [ebp - 0x4c60]
push ecx
mov eax, dword [ebp - 0x4c58]
xor edx, edx
mov ecx, 0x12
div ecx
mov edx, dword [edx*4 + 0x3643b18]
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 0x10079741
mov dl, byte [0x365aa74]
mov byte [ebp - 0x53e0], dl
movzx eax, byte [ebp - 0x53e0]
test eax, eax
je 0x10079832
push 1
mov ecx, dword [ebp - 0x4c54]
push ecx
mov edx, dword [ebp - 0x2598]
add edx, dword [ebp - 0x4c4c]
push edx
call fcn.1007bc30
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 [0x363f144]
mov ecx, dword [ebp - 0x2658]
mov dword [ebp - 0x51f8], ecx
mov edx, dword [ebp - 0x51f8]
push edx
call fcn.1008762b
add esp, 4
mov dword [ebp - 0x2658], 0
mov eax, 0x23
shl eax, 2
mov ecx, dword [0x365aa9c]
mov edx, dword [0x365aa9c]
mov esi, dword [0x365aa9c]
mov ebx, dword [esi + 0x70]
xor ebx, dword [edx + 0x54]
xor ebx, dword [ecx + eax]
and ebx, 1
neg ebx
sbb ebx, ebx
neg ebx
movzx eax, bl
test eax, eax
je 0x10079a9a
mov ecx, 0xc
shl ecx, 2
mov edx, dword [0x365aa9c]
mov eax, dword [0x365aa9c]
mov esi, dword [0x365aa9c]
mov esi, dword [esi + 0x70]
xor esi, dword [eax + 0x48]
xor esi, dword [edx + ecx]
add esi, dword [ebp - 0x2598]
mov dword [ebp - 0x4c64], esi
mov ecx, 0x16
shl ecx, 2
mov edx, dword [0x365aa9c]
mov eax, dword [0x365aa9c]
mov esi, dword [0x365aa9c]
mov esi, dword [esi + 0x18]
xor esi, dword [eax + 0x54]
xor esi, dword [edx + ecx]
mov dword [ebp - 0x5068], esi
mov ecx, 6
shl ecx, 2
mov edx, dword [0x365aa9c]
mov eax, dword [edx + ecx]
xor eax, 0
mov dword [ebp - 0x53e4], eax
mov ecx, 0x1c
shl ecx, 2
mov edx, dword [0x365aa9c]
mov eax, dword [edx + ecx]
xor eax, 0
mov dword [ebp - 0x53e8], eax
mov ecx, dword [ebp - 0x53e4]
xor ecx, dword [ebp - 0x53e8]
mov edx, 0x15
shl edx, 2
mov eax, dword [0x365aa9c]
mov edx, dword [eax + edx]
xor edx, 0
xor ecx, edx
mov dword [0x365f40c], ecx
mov dword [ebp - 0x506c], 0x80000000
mov dword [ebp - 0x5070], 0
jmp 0x1007998c
mov eax, dword [ebp - 0x5070]
add eax, 1
mov dword [ebp - 0x5070], eax
cmp dword [ebp - 0x5070], 0x100
jae 0x10079a30
push 8
mov ecx, dword [ebp - 0x5070]
push ecx
call fcn.1006e480
add esp, 8
shl eax, 0x18
mov dword [ebp - 0x5074], eax
mov dword [ebp - 0x5078], 0
jmp 0x100799d1
mov edx, dword [ebp - 0x5078]
add edx, 1
mov dword [ebp - 0x5078], edx
cmp dword [ebp - 0x5078], 8
jge 0x10079a0d
mov eax, dword [ebp - 0x5074]
and eax, 0x80000000
je 0x100799fd
mov ecx, dword [ebp - 0x5074]
shl ecx, 1
xor ecx, 0x4c11db7
mov dword [ebp - 0x5074], ecx
jmp 0x10079a0b
mov edx, dword [ebp - 0x5074]
shl edx, 1
mov dword [ebp - 0x5074], edx
jmp 0x100799c2
push 0x20
mov eax, dword [ebp - 0x5074]
push eax
call fcn.1006e480
add esp, 8
mov ecx, dword [ebp - 0x5070]
mov dword [ebp + ecx*4 - 0x5064], eax
jmp 0x1007997d
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 0x10079a5f
mov ecx, dword [ebp - 0x507c]
add ecx, 1
mov dword [ebp - 0x507c], ecx
mov edx, dword [ebp - 0x507c]
cmp edx, dword [ebp - 0x5080]
jae 0x10079a9a
mov eax, dword [ebp - 0x507c]
movsx ecx, byte [eax]
xor ecx, dword [0x365f40c]
and ecx, 0xff
mov edx, dword [0x365f40c]
shr edx, 8
xor edx, dword [ebp + ecx*4 - 0x5064]
mov dword [0x365f40c], edx
jmp 0x10079a50
mov dword [0x3656254], 0x3643f8c
mov eax, 0x1c
shl eax, 2
mov ecx, dword [0x365aa9c]
mov edx, dword [ecx + eax]
xor edx, 0
mov dword [ebp - 0x53ec], edx
mov eax, 0x15
shl eax, 2
mov ecx, dword [0x365aa9c]
mov edx, dword [ecx + eax]
xor edx, 0
mov dword [ebp - 0x53f0], edx
call fcn.1007db50
mov ecx, dword [ebp - 0x53ec]
xor ecx, dword [ebp - 0x53f0]
xor ecx, eax
mov dword [ebp - 0x53f4], ecx
mov edx, dword [ebp - 0x53f4]
mov dword [0x365aa88], edx
mov eax, 0x13
shl eax, 2
mov ecx, dword [0x365aa9c]
mov edx, dword [0x365aa9c]
mov esi, dword [0x365aa9c]
mov esi, dword [esi + 0xc]
xor esi, dword [edx + 0x70]
xor esi, dword [ecx + eax]
mov dword [ebp - 0x53f8], esi
mov eax, dword [ebp - 0x53f8]
push eax
mov ecx, dword [0x36649d8]
push ecx
call fcn.1004a370
add esp, 8
mov dword [0x36649d8], eax
mov dword [0x365aa88], 0
mov dword [0x3656254], 0x3643f84
mov edx, dword [0x36649d8]
sub edx, dword [0x366453c]
mov dword [0x3664544], edx
mov eax, 0xe
shl eax, 2
mov ecx, dword [0x365aa9c]
mov edx, dword [0x365aa9c]
mov esi, dword [0x365aa9c]
mov ebx, dword [esi + 0x70]
xor ebx, dword [edx + 0x54]
xor ebx, dword [ecx + eax]
and ebx, 0x80
neg ebx
sbb ebx, ebx
neg ebx
movzx eax, bl
test eax, eax
jne 0x10079ba2
call fcn.1007be20
mov cl, byte [0x365aa74]
mov byte [ebp - 0x53f9], cl
movzx edx, byte [ebp - 0x53f9]
test edx, edx
je 0x10079cd9
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 [0x363f144]
mov dword [ebp - 0x5128], eax
mov dword [ebp - 0x5124], 0x94
lea eax, [ebp - 0x5124]
push eax
call dword [0x363f11c]
cmp dword [ebp - 0x5114], 2
jne 0x10079c34
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 [0x363f144]
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 [0x3664cfc]
mov dword [ebp - 0x512c], ecx
jmp 0x10079c72
mov edx, dword [ebp - 0x512c]
mov eax, dword [edx + 0x10]
mov dword [ebp - 0x512c], eax
cmp dword [ebp - 0x512c], 0
je 0x10079cd9
mov ecx, dword [ebp - 0x512c]
mov edx, dword [ecx]
cmp edx, dword [ebp - 0x508c]
jb 0x10079c9b
mov eax, dword [ebp - 0x512c]
mov ecx, dword [eax]
cmp ecx, dword [ebp - 0x5088]
jb 0x10079ccd
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 0x10079cd7
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 0x10079cd7
mov edx, dword [ebp - 0x512c]
mov byte [edx + 0xc], 1
jmp 0x10079c63
mov eax, dword [0x363f250]
push eax
call fcn.1007db60
add esp, 4
mov byte [ebp - 0x2599], al
movzx ecx, byte [ebp - 0x2599]
test ecx, ecx
je 0x10079d1e
mov edx, 0x14
shl edx, 2
mov eax, dword [0x365aa9c]
mov ecx, dword [eax + edx]
xor ecx, 0x7c3
mov edx, 0x14
shl edx, 2
mov eax, dword [0x365aa9c]
mov dword [edx + eax], ecx
mov dword [0x3656254], 0x3643f7c
push 0
mov ecx, 0x365a450
call fcn.1001c4d0
cmp dword [0x365c558], 0
jne 0x10079d4a
call dword [0x363f334]
mov dword [0x365c558], eax
jmp 0x10079d34
mov ecx, dword [0x365aae4]
mov dword [ebp - 0x5404], ecx
mov edx, dword [0x365aa9c]
mov eax, dword [0x365aa9c]
mov ecx, dword [edx + 0x18]
xor ecx, dword [eax + 0x84]
mov edx, dword [0x365aa9c]
xor ecx, dword [edx + 0x54]
mov dword [ebp - 0x5408], ecx
push 0
mov ecx, 0x365a450
call fcn.100119e0
mov ecx, dword [ebp - 0x5404]
xor ecx, dword [ebp - 0x5408]
cmp eax, ecx
jne 0x10079dcc
mov edx, dword [0x365aae8]
mov dword [ebp - 0x5410], edx
mov eax, dword [0x365aa9c]
mov ecx, dword [0x365aa9c]
mov edx, dword [eax + 0x70]
xor edx, dword [ecx + 4]
mov eax, dword [0x365aa9c]
xor edx, dword [eax + 0x48]
mov dword [ebp - 0x5414], edx
push 0
mov ecx, 0x365a450
call fcn.10011a40
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.100872e1
mov esp, ebp
pop ebp
ret