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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5f823b
mov eax, dword fs:[0]
push eax
sub esp, 0x204
push esi
mov eax, dword [0x654c54]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x210], ecx
mov eax, dword [ebp - 0x210]
cmp dword [eax + 0x70], 0
je 0x4702e2
mov al, 1
jmp 0x47164b
mov ecx, dword [ebp - 0x210]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x210]
mov eax, dword [edx + 0x68]
call eax
mov ecx, dword [ebp - 0x210]
movzx edx, byte [ecx + 0x52]
test edx, edx
je 0x47030a
xor al, al
jmp 0x47164b
mov eax, dword [ebp - 0x210]
mov byte [eax + 0x78], 1
mov ecx, dword [ebp - 0x210]
cmp dword [ecx + 0x48], 0
je 0x470333
mov edx, dword [ebp - 0x210]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x210]
mov edx, dword [eax + 0x7c]
call edx
push 0x7c
push 0
lea eax, [ebp - 0x94]
push eax
call fcn.005ccbd0
add esp, 0xc
mov dword [ebp - 0x94], 0x7c
mov dword [ebp - 0x90], 7
mov ecx, dword [ebp - 0x210]
movzx edx, byte [ecx + 0x76]
neg edx
sbb edx, edx
and edx, 0x3800
add edx, 0x800
mov dword [ebp - 0x2c], edx
mov eax, dword [ebp - 0x210]
mov ecx, dword [eax + 0x24]
mov dword [ebp - 0x88], ecx
mov edx, dword [ebp - 0x210]
mov eax, dword [edx + 0x28]
mov dword [ebp - 0x8c], eax
mov ecx, dword [ebp - 0x210]
mov edx, dword [ecx + 0x6c]
add edx, 0x3c
mov dword [ebp - 0x20c], edx
mov eax, dword [ebp - 0x20c]
mov dword [ebp - 0xa8], eax
mov ecx, dword [ebp - 0xa8]
push ecx
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
mov dword [ebp - 4], 0
push 0
mov edx, dword [ebp - 0x210]
add edx, 0x70
push edx
lea eax, [ebp - 0x94]
push eax
mov ecx, dword [ebp - 0x210]
mov ecx, dword [ecx + 0x6c]
call fcn.004604d0
mov dword [ebp - 0xac], eax
cmp dword [ebp - 0xac], 0
je 0x47041d
mov byte [ebp - 0x1e9], 0
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0xa8]
push edx
call dword [sym.imp.kernel32.dll_LeaveCriticalSection]
mov al, byte [ebp - 0x1e9]
jmp 0x47164b
mov eax, dword [ebp - 0x210]
mov edx, dword [eax]
mov ecx, dword [ebp - 0x210]
mov eax, dword [edx + 0xbc]
call eax
movzx ecx, al
test ecx, ecx
jne 0x470460
mov byte [ebp - 0x1ea], 0
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0xa8]
push edx
call dword [sym.imp.kernel32.dll_LeaveCriticalSection]
mov al, byte [ebp - 0x1ea]
jmp 0x47164b
mov eax, dword [ebp - 0x210]
mov ecx, dword [eax + 0x6c]
mov edx, 8
sub edx, dword [ecx + 0x14]
add edx, 0x10
mov dword [ebp - 0xbc], edx
mov eax, dword [ebp - 0x210]
mov ecx, dword [eax + 0x6c]
mov edx, 8
sub edx, dword [ecx + 0x18]
add edx, 8
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0x210]
mov ecx, dword [eax + 0x6c]
mov edx, 8
sub edx, dword [ecx + 0x1c]
mov dword [ebp - 0xb0], edx
mov eax, dword [ebp - 0x210]
mov ecx, dword [eax + 0x6c]
mov edx, dword [ecx + 0x20]
mov dword [ebp - 0x9c], edx
mov eax, dword [ebp - 0x210]
mov ecx, dword [eax + 0x6c]
mov edx, dword [ecx + 0x24]
mov dword [ebp - 0x98], edx
mov eax, dword [ebp - 0x210]
mov ecx, dword [eax + 0x6c]
mov edx, dword [ecx + 0x28]
mov dword [ebp - 0xa4], edx
mov eax, dword [ebp - 0x210]
mov ecx, dword [eax + 0xd8]
mov dword [ebp - 0xa0], ecx
mov edx, dword [ebp - 0x210]
mov eax, dword [edx + 0xdc]
mov dword [ebp - 0xb8], eax
mov ecx, dword [ebp - 0x210]
mov edx, dword [ecx + 0xe0]
mov dword [ebp - 0xb4], edx
mov eax, dword [ebp - 0x210]
mov ecx, dword [eax + 0xd4]
mov dword [ebp - 0xc0], ecx
cmp dword [ebp - 0xc0], 0x10
jne 0x470d87
mov edx, dword [ebp - 0x210]
mov eax, dword [edx + 0xa4]
mov dword [ebp - 0xc4], eax
cmp dword [ebp - 0xc4], 0
je 0x470d82
mov byte [ebp - 0xc9], 1
mov dword [ebp - 0xd4], 0
xor ecx, ecx
mov word [ebp - 0xd0], cx
mov edx, dword [ebp - 0x210]
cmp dword [edx + 0x38], 0
je 0x4706db
mov eax, dword [ebp - 0x210]
mov ecx, dword [ebp - 0x210]
mov eax, dword [eax + 0x24]
imul eax, dword [ecx + 0x28]
xor ecx, ecx
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.005b97ec
add esp, 4
mov dword [ebp - 0x1f0], eax
mov eax, dword [ebp - 0x1f0]
mov dword [ebp - 0xd4], eax
mov ecx, dword [ebp - 0x210]
mov edx, dword [ecx + 0x38]
mov dword [ebp - 0xd8], edx
mov eax, dword [ebp - 0xd4]
mov dword [ebp - 0xdc], eax
mov dword [ebp - 0xc8], 0
jmp 0x4705f0
mov ecx, dword [ebp - 0xc8]
add ecx, 1
mov dword [ebp - 0xc8], ecx
mov edx, dword [ebp - 0x210]
mov eax, dword [ebp - 0x210]
mov ecx, dword [edx + 0x24]
imul ecx, dword [eax + 0x28]
cmp dword [ebp - 0xc8], ecx
jge 0x4706db
mov edx, dword [ebp - 0xd8]
mov eax, dword [edx]
mov dword [ebp - 0xe0], eax
mov ecx, dword [ebp - 0xd8]
add ecx, 4
mov dword [ebp - 0xd8], ecx
mov edx, dword [ebp - 0xe0]
mov ecx, dword [ebp - 0xbc]
shr edx, cl
mov ecx, dword [ebp - 0x9c]
shl edx, cl
and edx, dword [ebp - 0xa0]
mov eax, dword [ebp - 0xe0]
mov ecx, dword [ebp - 0x10]
shr eax, cl
mov ecx, dword [ebp - 0x98]
shl eax, cl
and eax, dword [ebp - 0xb8]
or edx, eax
mov eax, dword [ebp - 0xe0]
mov ecx, dword [ebp - 0xb0]
shr eax, cl
mov ecx, dword [ebp - 0xa4]
shl eax, cl
and eax, dword [ebp - 0xb4]
or edx, eax
mov ecx, dword [ebp - 0xdc]
mov word [ecx], dx
mov edx, dword [ebp - 0xe0]
shr edx, 0x18
mov dword [ebp - 0xe4], edx
movzx eax, byte [ebp - 0xc9]
test eax, eax
je 0x4706c7
cmp dword [ebp - 0xe4], 0xff
jge 0x4706c7
mov byte [ebp - 0xc9], 0
mov ecx, dword [ebp - 0xdc]
mov dx, word [ecx]
mov word [ebp - 0xd0], dx
mov eax, dword [ebp - 0xdc]
add eax, 2
mov dword [ebp - 0xdc], eax
jmp 0x4705e1
mov ecx, dword [ebp - 0x210]
movzx edx, byte [ecx + 0x51]
test edx, edx
je 0x470c3b
mov eax, dword [ebp - 0x210]
cmp dword [eax + 0x38], 0
je 0x470c3b
mov ecx, dword [ebp - 0x210]
movzx edx, byte [ecx + 0x77]
test edx, edx
je 0x470805
mov eax, dword [ebp - 0xd4]
mov cx, word [eax]
mov word [ebp - 0xd0], cx
cmp dword [ebp - 0xd4], 0
je 0x470800
mov edx, dword [ebp - 0xc4]
mov dword [ebp - 0xec], edx
mov eax, dword [ebp - 0xd4]
mov dword [ebp - 0xe8], eax
mov dword [ebp - 0xf0], 0
jmp 0x47075f
mov ecx, dword [ebp - 0xf0]
add ecx, 1
mov dword [ebp - 0xf0], ecx
mov edx, dword [ebp - 0x210]
mov eax, dword [ebp - 0xf0]
cmp eax, dword [edx + 0x28]
jge 0x470800
mov dword [ebp - 0xf4], 0
jmp 0x47078f
mov ecx, dword [ebp - 0xf4]
add ecx, 1
mov dword [ebp - 0xf4], ecx
mov edx, dword [ebp - 0x210]
mov eax, dword [ebp - 0xf4]
cmp eax, dword [edx + 0x24]
jge 0x4707d2
mov ecx, dword [ebp - 0xec]
mov edx, dword [ebp - 0xe8]
mov ax, word [edx]
mov word [ecx], ax
mov ecx, dword [ebp - 0xec]
add ecx, 2
mov dword [ebp - 0xec], ecx
mov edx, dword [ebp - 0xe8]
add edx, 2
mov dword [ebp - 0xe8], edx
jmp 0x470780
mov eax, dword [ebp - 0x210]
mov eax, dword [eax + 0x90]
cdq
sub eax, edx
sar eax, 1
mov ecx, dword [ebp - 0x210]
sub eax, dword [ecx + 0x24]
mov edx, dword [ebp - 0xec]
lea eax, [edx + eax*2]
mov dword [ebp - 0xec], eax
jmp 0x470750
jmp 0x470c36
mov byte [ebp - 0xf9], 0
mov ecx, dword [ebp - 0x210]
mov edx, dword [ecx + 0x38]
mov dword [ebp - 0xf8], edx
mov eax, dword [ebp - 0xd4]
mov dword [ebp - 0x100], eax
mov dword [ebp - 0xc8], 0
jmp 0x470842
mov ecx, dword [ebp - 0xc8]
add ecx, 1
mov dword [ebp - 0xc8], ecx
mov edx, dword [ebp - 0x210]
mov eax, dword [ebp - 0x210]
mov ecx, dword [edx + 0x24]
imul ecx, dword [eax + 0x28]
cmp dword [ebp - 0xc8], ecx
jge 0x4708d4
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx]
mov dword [ebp - 0x108], eax
mov ecx, dword [ebp - 0xf8]
add ecx, 4
mov dword [ebp - 0xf8], ecx
mov edx, dword [ebp - 0x100]
mov ax, word [edx]
mov word [ebp - 0x104], ax
mov ecx, dword [ebp - 0x100]
add ecx, 2
mov dword [ebp - 0x100], ecx
mov edx, dword [ebp - 0x108]
shr edx, 0x18
mov dword [ebp - 0x10c], edx
cmp dword [ebp - 0x10c], 0xff
jne 0x4708cf
movzx eax, word [ebp - 0xd0]
movzx ecx, word [ebp - 0x104]
cmp eax, ecx
jne 0x4708cf
mov byte [ebp - 0xf9], 1
jmp 0x4708d4
jmp 0x470833
movzx edx, byte [ebp - 0xf9]
test edx, edx
je 0x470ae3
push 0x2000
call fcn.005b97ec
add esp, 4
mov dword [ebp - 0x1f4], eax
mov eax, dword [ebp - 0x1f4]
mov dword [ebp - 0x110], eax
push 0x2000
push 0
mov ecx, dword [ebp - 0x110]
push ecx
call fcn.005ccbd0
add esp, 0xc
mov edx, dword [ebp - 0x210]
mov eax, dword [edx + 0x38]
mov dword [ebp - 0xf8], eax
mov ecx, dword [ebp - 0xd4]
mov dword [ebp - 0x100], ecx
mov dword [ebp - 0xc8], 0
jmp 0x47094e
mov edx, dword [ebp - 0xc8]
add edx, 1
mov dword [ebp - 0xc8], edx
mov eax, dword [ebp - 0x210]
mov ecx, dword [ebp - 0x210]
mov edx, dword [eax + 0x24]
imul edx, dword [ecx + 0x28]
cmp dword [ebp - 0xc8], edx
jge 0x470a13
mov eax, dword [ebp - 0xf8]
mov ecx, dword [eax]
mov dword [ebp - 0x11c], ecx
mov edx, dword [ebp - 0xf8]
add edx, 4
mov dword [ebp - 0xf8], edx
mov eax, dword [ebp - 0x100]
mov cx, word [eax]
mov word [ebp - 0x118], cx
mov edx, dword [ebp - 0x100]
add edx, 2
mov dword [ebp - 0x100], edx
mov eax, dword [ebp - 0x11c]
shr eax, 0x18
mov dword [ebp - 0x120], eax
cmp dword [ebp - 0x120], 0
jle 0x470a0e
movzx eax, word [ebp - 0x118]
cdq
and edx, 0x1f
add eax, edx
sar eax, 5
movzx ecx, word [ebp - 0x118]
and ecx, 0x8000001f
jns 0x4709e5
dec ecx
or ecx, 0xffffffe0
inc ecx
mov esi, 1
shl esi, cl
mov edx, dword [ebp - 0x110]
or esi, dword [edx + eax*4]
movzx eax, word [ebp - 0x118]
cdq
and edx, 0x1f
add eax, edx
sar eax, 5
mov ecx, dword [ebp - 0x110]
mov dword [ecx + eax*4], esi
jmp 0x47093f
mov byte [ebp - 0x111], 0
mov dword [ebp - 0x124], 0
jmp 0x470a35
mov edx, dword [ebp - 0x124]
add edx, 1
mov dword [ebp - 0x124], edx
cmp dword [ebp - 0x124], 0x800
jge 0x470ac8
mov eax, dword [ebp - 0x124]
mov ecx, dword [ebp - 0x110]
cmp dword [ecx + eax*4], 0xffff
je 0x470ab6
mov dword [ebp - 0x128], 0
jmp 0x470a75
mov edx, dword [ebp - 0x128]
add edx, 1
mov dword [ebp - 0x128], edx
cmp dword [ebp - 0x128], 0x20
jge 0x470ab6
mov eax, 1
mov ecx, dword [ebp - 0x128]
shl eax, cl
mov ecx, dword [ebp - 0x124]
mov edx, dword [ebp - 0x110]
and eax, dword [edx + ecx*4]
jne 0x470ab4
mov eax, dword [ebp - 0x124]
shl eax, 5
add eax, dword [ebp - 0x128]
mov word [ebp - 0xd0], ax
jmp 0x470ab6
jmp 0x470a66
movzx ecx, byte [ebp - 0x111]
test ecx, ecx
je 0x470ac3
jmp 0x470ac8
jmp 0x470a26
mov edx, dword [ebp - 0x110]
mov dword [ebp - 0x1f8], edx
mov eax, dword [ebp - 0x1f8]
push eax
call fcn.005cb017
add esp, 4
mov ecx, dword [ebp - 0x210]
cmp dword [ecx + 0x38], 0
je 0x470c36
mov edx, dword [ebp - 0xc4]
mov dword [ebp - 0x134], edx
mov eax, dword [ebp - 0x210]
mov ecx, dword [eax + 0x38]
mov dword [ebp - 0x12c], ecx
mov edx, dword [ebp - 0xd4]
mov dword [ebp - 0x130], edx
mov dword [ebp - 0x138], 0
jmp 0x470b35
mov eax, dword [ebp - 0x138]
add eax, 1
mov dword [ebp - 0x138], eax
mov ecx, dword [ebp - 0x210]
mov edx, dword [ebp - 0x138]
cmp edx, dword [ecx + 0x28]
jge 0x470c36
mov dword [ebp - 0x13c], 0
jmp 0x470b65
mov eax, dword [ebp - 0x13c]
add eax, 1
mov dword [ebp - 0x13c], eax
mov ecx, dword [ebp - 0x210]
mov edx, dword [ebp - 0x13c]
cmp edx, dword [ecx + 0x24]
jge 0x470c08
mov eax, dword [ebp - 0x12c]
mov ecx, dword [eax]
mov dword [ebp - 0x140], ecx
mov edx, dword [ebp - 0x12c]
add edx, 4
mov dword [ebp - 0x12c], edx
mov eax, dword [ebp - 0x140]
shr eax, 0x18
mov dword [ebp - 0x144], eax
cmp dword [ebp - 0x144], 0xff
jge 0x470bd3
mov ecx, dword [ebp - 0x134]
mov dx, word [ebp - 0xd0]
mov word [ecx], dx
mov eax, dword [ebp - 0x134]
add eax, 2
mov dword [ebp - 0x134], eax
jmp 0x470bf4
mov ecx, dword [ebp - 0x134]
mov edx, dword [ebp - 0x130]
mov ax, word [edx]
mov word [ecx], ax
mov ecx, dword [ebp - 0x134]
add ecx, 2
mov dword [ebp - 0x134], ecx
mov edx, dword [ebp - 0x130]
add edx, 2
mov dword [ebp - 0x130], edx
jmp 0x470b56
mov eax, dword [ebp - 0x210]
mov eax, dword [eax + 0x90]
cdq
sub eax, edx
sar eax, 1
mov ecx, dword [ebp - 0x210]
sub eax, dword [ecx + 0x24]
mov edx, dword [ebp - 0x134]
lea eax, [edx + eax*2]
mov dword [ebp - 0x134], eax
jmp 0x470b26
jmp 0x470d1c
cmp dword [ebp - 0xd4], 0
je 0x470d1c
mov ecx, dword [ebp - 0xc4]
mov dword [ebp - 0x14c], ecx
mov edx, dword [ebp - 0xd4]
mov dword [ebp - 0x148], edx
mov dword [ebp - 0x150], 0
jmp 0x470c7b
mov eax, dword [ebp - 0x150]
add eax, 1
mov dword [ebp - 0x150], eax
mov ecx, dword [ebp - 0x210]
mov edx, dword [ebp - 0x150]
cmp edx, dword [ecx + 0x28]
jge 0x470d1c
mov dword [ebp - 0x154], 0
jmp 0x470cab
mov eax, dword [ebp - 0x154]
add eax, 1
mov dword [ebp - 0x154], eax
mov ecx, dword [ebp - 0x210]
mov edx, dword [ebp - 0x154]
cmp edx, dword [ecx + 0x24]
jge 0x470cee
mov eax, dword [ebp - 0x14c]
mov ecx, dword [ebp - 0x148]
mov dx, word [ecx]
mov word [eax], dx
mov eax, dword [ebp - 0x14c]
add eax, 2
mov dword [ebp - 0x14c], eax
mov ecx, dword [ebp - 0x148]
add ecx, 2
mov dword [ebp - 0x148], ecx
jmp 0x470c9c
mov edx, dword [ebp - 0x210]
mov eax, dword [edx + 0x90]
cdq
sub eax, edx
sar eax, 1
mov ecx, dword [ebp - 0x210]
sub eax, dword [ecx + 0x24]
mov edx, dword [ebp - 0x14c]
lea eax, [edx + eax*2]
mov dword [ebp - 0x14c], eax
jmp 0x470c6c
mov ecx, dword [ebp - 0xd4]
mov dword [ebp - 0x1fc], ecx
mov edx, dword [ebp - 0x1fc]
push edx
call fcn.005cb017
add esp, 4
mov eax, dword [ebp - 0x210]
movzx ecx, byte [eax + 0x51]
test ecx, ecx
je 0x470d82
movzx edx, word [ebp - 0xd0]
mov dword [ebp - 0x15c], edx
movzx eax, word [ebp - 0xd0]
mov dword [ebp - 0x158], eax
lea ecx, [ebp - 0x15c]
push ecx
push 8
mov edx, dword [ebp - 0x210]
mov eax, dword [edx + 0x70]
mov ecx, dword [ebp - 0x210]
mov edx, dword [ecx + 0x70]
mov eax, dword [eax]
push edx
mov ecx, dword [eax + 0x74]
call ecx
jmp 0x471614
cmp dword [ebp - 0xc0], 0x20
jne 0x4715f1
mov edx, dword [ebp - 0x210]
mov eax, dword [edx + 0xa4]
mov dword [ebp - 0x160], eax
cmp dword [ebp - 0x160], 0
je 0x4715ef
mov byte [ebp - 0x165], 1
mov dword [ebp - 0x16c], 0
mov ecx, dword [ebp - 0x210]
movzx edx, byte [ecx + 0x51]
test edx, edx
je 0x4714a4
mov eax, dword [ebp - 0x210]
cmp dword [eax + 0x38], 0
je 0x4714a4
mov ecx, dword [ebp - 0x210]
movzx edx, byte [ecx + 0x77]
test edx, edx
je 0x470fb4
mov eax, dword [ebp - 0x210]
mov ecx, dword [eax + 0x38]
mov edx, dword [ecx]
mov dword [ebp - 0x178], edx
mov eax, dword [ebp - 0x178]
mov ecx, dword [ebp - 0xbc]
shr eax, cl
mov ecx, dword [ebp - 0x9c]
shl eax, cl
and eax, dword [ebp - 0xa0]
mov edx, dword [ebp - 0x178]
mov ecx, dword [ebp - 0x10]
shr edx, cl
mov ecx, dword [ebp - 0x98]
shl edx, cl
and edx, dword [ebp - 0xb8]
or eax, edx
mov edx, dword [ebp - 0x178]
mov ecx, dword [ebp - 0xb0]
shr edx, cl
mov ecx, dword [ebp - 0xa4]
shl edx, cl
and edx, dword [ebp - 0xb4]
or eax, edx
mov dword [ebp - 0x16c], eax
mov eax, dword [ebp - 0x210]
cmp dword [eax + 0x38], 0
je 0x470faf
mov ecx, dword [ebp - 0x160]
mov dword [ebp - 0x180], ecx
mov edx, dword [ebp - 0x210]
mov eax, dword [edx + 0x38]
mov dword [ebp - 0x17c], eax
mov dword [ebp - 0x184], 0
jmp 0x470eaa
mov ecx, dword [ebp - 0x184]
add ecx, 1
mov dword [ebp - 0x184], ecx
mov edx, dword [ebp - 0x210]
mov eax, dword [ebp - 0x184]
cmp eax, dword [edx + 0x28]
jge 0x470faf
mov dword [ebp - 0x188], 0
jmp 0x470eda
mov ecx, dword [ebp - 0x188]
add ecx, 1
mov dword [ebp - 0x188], ecx
mov edx, dword [ebp - 0x210]
mov eax, dword [ebp - 0x188]
cmp eax, dword [edx + 0x24]
jge 0x470f7d
mov ecx, dword [ebp - 0x17c]
mov edx, dword [ecx]
mov dword [ebp - 0x18c], edx
mov eax, dword [ebp - 0x17c]
add eax, 4
mov dword [ebp - 0x17c], eax
mov edx, dword [ebp - 0x18c]
mov ecx, dword [ebp - 0xbc]
shr edx, cl
mov ecx, dword [ebp - 0x9c]
shl edx, cl
and edx, dword [ebp - 0xa0]
mov eax, dword [ebp - 0x18c]
mov ecx, dword [ebp - 0x10]
shr eax, cl
mov ecx, dword [ebp - 0x98]
shl eax, cl
and eax, dword [ebp - 0xb8]
or edx, eax
mov eax, dword [ebp - 0x18c]
mov ecx, dword [ebp - 0xb0]
shr eax, cl
mov ecx, dword [ebp - 0xa4]
shl eax, cl
and eax, dword [ebp - 0xb4]
or edx, eax
mov ecx, dword [ebp - 0x180]
mov dword [ecx], edx
mov edx, dword [ebp - 0x180]
add edx, 4
mov dword [ebp - 0x180], edx
jmp 0x470ecb
mov eax, dword [ebp - 0x210]
mov eax, dword [eax + 0x90]
cdq
and edx, 3
add eax, edx
sar eax, 2
mov ecx, dword [ebp - 0x210]
sub eax, dword [ecx + 0x24]
mov edx, dword [ebp - 0x180]
lea eax, [edx + eax*4]
mov dword [ebp - 0x180], eax
jmp 0x470e9b
jmp 0x471464
mov ecx, dword [ebp - 0x210]
mov edx, dword [ecx + 0x38]
mov dword [ebp - 0x194], edx
mov dword [ebp - 0x164], 0
jmp 0x470fde
mov eax, dword [ebp - 0x164]
add eax, 1
mov dword [ebp - 0x164], eax
mov ecx, dword [ebp - 0x210]
mov edx, dword [ebp - 0x210]
mov eax, dword [ecx + 0x24]
imul eax, dword [edx + 0x28]
cmp dword [ebp - 0x164], eax
jge 0x471054
mov ecx, dword [ebp - 0x194]
mov edx, dword [ecx]
mov dword [ebp - 0x198], edx
mov eax, dword [ebp - 0x194]
add eax, 4
mov dword [ebp - 0x194], eax
mov ecx, dword [ebp - 0x198]
shr ecx, 0x18
mov dword [ebp - 0x19c], ecx
movzx edx, byte [ebp - 0x165]
test edx, edx
je 0x47104f
cmp dword [ebp - 0x19c], 0xff
jge 0x47104f
mov byte [ebp - 0x165], 0
mov eax, dword [ebp - 0x198]
mov dword [ebp - 0x16c], eax
jmp 0x470fcf
mov byte [ebp - 0x18d], 0
mov ecx, dword [ebp - 0x210]
mov edx, dword [ecx + 0x38]
mov dword [ebp - 0x194], edx
mov dword [ebp - 0x164], 0
jmp 0x471085
mov eax, dword [ebp - 0x164]
add eax, 1
mov dword [ebp - 0x164], eax
mov ecx, dword [ebp - 0x210]
mov edx, dword [ebp - 0x210]
mov eax, dword [ecx + 0x24]
imul eax, dword [edx + 0x28]
cmp dword [ebp - 0x164], eax
jge 0x4710fa
mov ecx, dword [ebp - 0x194]
mov edx, dword [ecx]
mov dword [ebp - 0x1a0], edx
mov eax, dword [ebp - 0x194]
add eax, 4
mov dword [ebp - 0x194], eax
mov ecx, dword [ebp - 0x1a0]
shr ecx, 0x18
mov dword [ebp - 0x1a4], ecx
cmp dword [ebp - 0x1a4], 0xff
jne 0x4710f5
mov edx, dword [ebp - 0x1a0]
and edx, 0xffffff
cmp dword [ebp - 0x16c], edx
jne 0x4710f5
mov byte [ebp - 0x18d], 1
jmp 0x4710fa
jmp 0x471076
movzx eax, byte [ebp - 0x18d]
test eax, eax
je 0x4712df
push 0x200000
call fcn.005b97ec
add esp, 4
mov dword [ebp - 0x200], eax
mov ecx, dword [ebp - 0x200]
mov dword [ebp - 0x1a8], ecx
push 0x200000
push 0
mov edx, dword [ebp - 0x1a8]
push edx
call fcn.005ccbd0
add esp, 0xc
mov eax, dword [ebp - 0x210]
mov ecx, dword [eax + 0x38]
mov dword [ebp - 0x194], ecx
mov dword [ebp - 0x164], 0
jmp 0x471168
mov edx, dword [ebp - 0x164]
add edx, 1
mov dword [ebp - 0x164], edx
mov eax, dword [ebp - 0x210]
mov ecx, dword [ebp - 0x210]
mov edx, dword [eax + 0x24]
imul edx, dword [ecx + 0x28]
cmp dword [ebp - 0x164], edx
jge 0x471209
mov eax, dword [ebp - 0x194]
mov ecx, dword [eax]
mov dword [ebp - 0x1b0], ecx
mov edx, dword [ebp - 0x194]
add edx, 4
mov dword [ebp - 0x194], edx
mov eax, dword [ebp - 0x1b0]
shr eax, 0x18
mov dword [ebp - 0x1b4], eax
cmp dword [ebp - 0x1b4], 0
jle 0x471204
mov esi, dword [ebp - 0x1b0]
and esi, 0xffffff
shr esi, 5
mov eax, dword [ebp - 0x1b0]
xor edx, edx
mov ecx, 0x20
div ecx
mov eax, 1
mov ecx, edx
shl eax, cl
mov ecx, dword [ebp - 0x1a8]
or eax, dword [ecx + esi*4]
mov edx, dword [ebp - 0x1b0]
and edx, 0xffffff
shr edx, 5
mov ecx, dword [ebp - 0x1a8]
mov dword [ecx + edx*4], eax
jmp 0x471159
mov byte [ebp - 0x1a9], 0
mov dword [ebp - 0x1b8], 0
jmp 0x47122b
mov edx, dword [ebp - 0x1b8]
add edx, 1
mov dword [ebp - 0x1b8], edx
cmp dword [ebp - 0x1b8], 0x80000
jge 0x4712c4
mov eax, dword [ebp - 0x1b8]
mov ecx, dword [ebp - 0x1a8]
cmp dword [ecx + eax*4], 0xffff
je 0x4712b2
mov dword [ebp - 0x1bc], 0
jmp 0x47126b
mov edx, dword [ebp - 0x1bc]
add edx, 1
mov dword [ebp - 0x1bc], edx
cmp dword [ebp - 0x1bc], 0x20
jge 0x4712b2
mov eax, 1
mov ecx, dword [ebp - 0x1bc]
shl eax, cl
mov ecx, dword [ebp - 0x1b8]
mov edx, dword [ebp - 0x1a8]
and eax, dword [edx + ecx*4]
jne 0x4712b0
mov eax, dword [ebp - 0x1b8]
shl eax, 5
add eax, dword [ebp - 0x1bc]
mov dword [ebp - 0x16c], eax
mov byte [ebp - 0x1a9], 1
jmp 0x4712b2
jmp 0x47125c
movzx ecx, byte [ebp - 0x1a9]
test ecx, ecx
je 0x4712bf
jmp 0x4712c4
jmp 0x47121c
mov edx, dword [ebp - 0x1a8]
mov dword [ebp - 0x204], edx
mov eax, dword [ebp - 0x204]
push eax
call fcn.005cb017
add esp, 4
mov ecx, dword [ebp - 0x210]
cmp dword [ecx + 0x38], 0
je 0x471464
mov edx, dword [ebp - 0x160]
mov dword [ebp - 0x1c4], edx
mov eax, dword [ebp - 0x210]
mov ecx, dword [eax + 0x38]
mov dword [ebp - 0x1c0], ecx
mov dword [ebp - 0x1c8], 0
jmp 0x471325
mov edx, dword [ebp - 0x1c8]
add edx, 1
mov dword [ebp - 0x1c8], edx
mov eax, dword [ebp - 0x210]
mov ecx, dword [ebp - 0x1c8]
cmp ecx, dword [eax + 0x28]
jge 0x471464
mov dword [ebp - 0x1cc], 0
jmp 0x471355
mov edx, dword [ebp - 0x1cc]
add edx, 1
mov dword [ebp - 0x1cc], edx
mov eax, dword [ebp - 0x210]
mov ecx, dword [ebp - 0x1cc]
cmp ecx, dword [eax + 0x24]
jge 0x471432
mov edx, dword [ebp - 0x1c0]
mov eax, dword [edx]
mov dword [ebp - 0x1d0], eax
mov ecx, dword [ebp - 0x1c0]
add ecx, 4
mov dword [ebp - 0x1c0], ecx
mov edx, dword [ebp - 0x1d0]
shr edx, 0x18
mov dword [ebp - 0x1d4], edx
cmp dword [ebp - 0x1d4], 0xff
jge 0x4713c1
mov eax, dword [ebp - 0x1c4]
mov ecx, dword [ebp - 0x16c]
mov dword [eax], ecx
mov edx, dword [ebp - 0x1c4]
add edx, 4
mov dword [ebp - 0x1c4], edx
jmp 0x47142d
mov eax, dword [ebp - 0x1d0]
mov ecx, dword [ebp - 0xbc]
shr eax, cl
mov ecx, dword [ebp - 0x9c]
shl eax, cl
and eax, dword [ebp - 0xa0]
mov edx, dword [ebp - 0x1d0]
mov ecx, dword [ebp - 0x10]
shr edx, cl
mov ecx, dword [ebp - 0x98]
shl edx, cl
and edx, dword [ebp - 0xb8]
or eax, edx
mov edx, dword [ebp - 0x1d0]
mov ecx, dword [ebp - 0xb0]
shr edx, cl
mov ecx, dword [ebp - 0xa4]
shl edx, cl
and edx, dword [ebp - 0xb4]
or eax, edx
mov ecx, dword [ebp - 0x1c4]
mov dword [ecx], eax
mov edx, dword [ebp - 0x1c4]
add edx, 4
mov dword [ebp - 0x1c4], edx
jmp 0x471346
mov eax, dword [ebp - 0x210]
mov eax, dword [eax + 0x90]
cdq
and edx, 3
add eax, edx
sar eax, 2
mov ecx, dword [ebp - 0x210]
sub eax, dword [ecx + 0x24]
mov edx, dword [ebp - 0x1c4]
lea eax, [edx + eax*4]
mov dword [ebp - 0x1c4], eax
jmp 0x471316
mov ecx, dword [ebp - 0x16c]
mov dword [ebp - 0x174], ecx
mov edx, dword [ebp - 0x16c]
mov dword [ebp - 0x170], edx
lea eax, [ebp - 0x174]
push eax
push 8
mov ecx, dword [ebp - 0x210]
mov edx, dword [ecx + 0x70]
mov eax, dword [ebp - 0x210]
mov ecx, dword [eax + 0x70]
mov edx, dword [edx]
push ecx
mov eax, dword [edx + 0x74]
call eax
jmp 0x4715ef
mov ecx, dword [ebp - 0x210]
cmp dword [ecx + 0x38], 0
je 0x4715ef
mov edx, dword [ebp - 0x160]
mov dword [ebp - 0x1dc], edx
mov eax, dword [ebp - 0x210]
mov ecx, dword [eax + 0x38]
mov dword [ebp - 0x1d8], ecx
mov dword [ebp - 0x1e0], 0
jmp 0x4714ea
mov edx, dword [ebp - 0x1e0]
add edx, 1
mov dword [ebp - 0x1e0], edx
mov eax, dword [ebp - 0x210]
mov ecx, dword [ebp - 0x1e0]
cmp ecx, dword [eax + 0x28]
jge 0x4715ef
mov dword [ebp - 0x1e4], 0
jmp 0x47151a
mov edx, dword [ebp - 0x1e4]
add edx, 1
mov dword [ebp - 0x1e4], edx
mov eax, dword [ebp - 0x210]
mov ecx, dword [ebp - 0x1e4]
cmp ecx, dword [eax + 0x24]
jge 0x4715bd
mov edx, dword [ebp - 0x1d8]
mov eax, dword [edx]
mov dword [ebp - 0x1e8], eax
mov ecx, dword [ebp - 0x1d8]
add ecx, 4
mov dword [ebp - 0x1d8], ecx
mov edx, dword [ebp - 0x1e8]
mov ecx, dword [ebp - 0xbc]
shr edx, cl
mov ecx, dword [ebp - 0x9c]
shl edx, cl
and edx, dword [ebp - 0xa0]
mov eax, dword [ebp - 0x1e8]
mov ecx, dword [ebp - 0x10]
shr eax, cl
mov ecx, dword [ebp - 0x98]
shl eax, cl
and eax, dword [ebp - 0xb8]
or edx, eax
mov eax, dword [ebp - 0x1e8]
mov ecx, dword [ebp - 0xb0]
shr eax, cl
mov ecx, dword [ebp - 0xa4]
shl eax, cl
and eax, dword [ebp - 0xb4]
or edx, eax
mov ecx, dword [ebp - 0x1dc]
mov dword [ecx], edx
mov edx, dword [ebp - 0x1dc]
add edx, 4
mov dword [ebp - 0x1dc], edx
jmp 0x47150b
mov eax, dword [ebp - 0x210]
mov eax, dword [eax + 0x90]
cdq
and edx, 3
add eax, edx
sar eax, 2
mov ecx, dword [ebp - 0x210]
sub eax, dword [ecx + 0x24]
mov edx, dword [ebp - 0x1dc]
lea eax, [edx + eax*4]
mov dword [ebp - 0x1dc], eax
jmp 0x4714db
jmp 0x471614
mov byte [ebp - 0x205], 0
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0xa8]
push ecx
call dword [sym.imp.kernel32.dll_LeaveCriticalSection]
mov al, byte [ebp - 0x205]
jmp 0x47164b
mov edx, dword [ebp - 0x210]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x210]
mov edx, dword [eax + 0xc0]
call edx
mov byte [ebp - 0x206], 1
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0xa8]
push eax
call dword [sym.imp.kernel32.dll_LeaveCriticalSection]
mov al, byte [ebp - 0x206]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
mov esp, ebp
pop ebp
ret