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

Disassembly:
mov eax, 0x3e98
call fcn.00495a20
mov eax, dword [0x508578]
xor eax, esp
mov dword [esp + 0x3e94], eax
mov eax, dword [esp + 0x3ea4]
mov edx, dword [esp + 0x3eb8]
mov ecx, dword [esp + 0x3ea8]
push ebx
push ebp
mov ebp, dword [esp + 0x3ea4]
mov dword [esp + 0x54], eax
mov eax, dword [ebp + 0xb0]
push esi
mov dword [esp + 0x38], edx
mov edx, dword [eax + 0x2e0]
mov dword [esp + 0x44], eax
mov eax, dword [edx + 0x220]
push edi
mov edi, dword [ebp]
shl eax, 0x10
xor ebx, ebx
push 0x80
mov dword [esp + 0x50], eax
mov dword [esp + 0x64], ecx
mov ecx, dword [ebp + 0x34]
lea eax, [esp + 0x3e28]
push ebx
lea esi, [ebp + 4]
push eax
mov dword [esp + 0x28], ebp
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x24], esi
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x70], 0x1312d00
call fcn.00493620
mov ecx, 0x14
mov dword [esp + 0x9c], ecx
mov dword [esp + 0x7c], ecx
mov ecx, dword [esp + 0x6c]
push ecx
mov eax, 0xa
mov dword [esp + 0xc8], eax
mov dword [esp + 0xa8], eax
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x3ed4]
lea edx, [ebp + 0xf0]
push edx
push eax
lea ecx, [esp + 0xfc]
push ecx
mov ecx, dword [esp + 0x6c]
lea edx, [esp + 0x84]
push edx
mov edx, dword [esp + 0x7c]
lea eax, [esp + 0xa8]
push eax
pxor xmm0, xmm0
movq qword [esp + 0x108], xmm0
push ecx
mov dword [esp + 0xd4], esi
mov dword [esp + 0xb4], esi
mov dword [esp + 0x94], esi
mov dword [esp + 0x10c], esi
mov dword [esp + 0xd0], edi
mov dword [esp + 0xd8], 0x10
mov dword [esp + 0xdc], ebx
mov dword [esp + 0xe4], ebx
mov dword [esp + 0xe8], ebx
mov dword [esp + 0xec], ebx
mov dword [esp + 0xb0], edi
mov dword [esp + 0xbc], ebx
mov dword [esp + 0xc4], ebx
mov dword [esp + 0xc8], ebx
mov dword [esp + 0xcc], ebx
mov dword [esp + 0x90], edi
mov dword [esp + 0x9c], ebx
mov dword [esp + 0xa4], ebx
mov dword [esp + 0xa8], ebx
mov dword [esp + 0xac], ebx
movq qword [esp + 0x114], xmm0
movq qword [esp + 0x11c], xmm0
mov dword [esp + 0x124], ebx
push edx
mov eax, ebp
lea esi, [esp + 0x12c]
call fcn.0046e720
mov eax, dword [esp + 0x74]
mov ecx, dword [eax + 0x2e0]
mov edx, dword [ecx + 0x21c]
mov eax, dword [esp + 0x68]
add esp, 0x2c
cmp byte [ebp + 8], bl
setne byte [esp + 0x13]
shl edx, 0x10
mov dword [eax], edx
cmp byte [ebp + 8], bl
je 0x472063
mov ecx, dword [esp + 0x48]
mov edx, dword [ecx + 0x4c]
mov eax, dword [edx + 0x614]
jmp 0x472068
mov eax, 0x30
push eax
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x1c]
push eax
call fcn.0046f370
mov ebp, eax
add esp, 8
cmp ebp, ebx
jne 0x47208d
mov dword [esp + 0x30], 0x40
jmp 0x4732bb
push 0x11
lea eax, [esp + 0xac]
call fcn.0046fd90
add esp, 4
test al, al
je 0x4720ad
mov dword [esp + 0xbc], 0x11
mov ecx, dword [esp + 0x3eb0]
mov eax, dword [esp + 0xc4]
movq xmm0, qword [ecx]
movq qword [eax], xmm0
movq xmm0, qword [ecx + 8]
mov ecx, dword [esp + 0x18]
movq qword [eax + 8], xmm0
mov dword [esp + 0x28], eax
mov dword [esp + 0x44], ebx
cmp dword [ecx], ebx
jne 0x4732bb
mov ebx, dword [esp + 0x3ec0]
jmp 0x4720f0
mov edx, dword [esp + 0x28]
mov eax, dword [edx + 0xc]
cmp eax, dword [edx + 8]
jb 0x472143
mov eax, dword [esp + 0x44]
neg eax
sbb al, al
and al, 0xfd
add al, 0xe
mov byte [esp + 0x12], al
mov edx, dword [esp + 0x1c]
lea ecx, [edx + 4]
xor esi, esi
mov dword [esp + 0x18], ecx
cmp dword [ecx], esi
jne 0x4732bb
mov ecx, 1
sub dword [esp + 0x64], ecx
je 0x473148
movzx edi, al
cmp edi, 0x1f
ja case.default.0x47213c
jmp dword [edi*4 + 0x4733b4]
mov cl, byte [eax]
inc eax
mov dword [edx + 0xc], eax
movzx eax, cl
mov byte [esp + 0x12], al
cmp al, 0xb
je 0x472158
cmp al, 0xe
jne 0x47210c
mov edx, dword [esp + 0x1c]
cmp byte [edx + 8], 0
je 0x472110
xor al, al
mov byte [esp + 0x12], al
jmp 0x472110
cmp byte [edx + 8], 0
je case.0x47213c.0
cmp byte [edx + 0x5d], 0
jne 0x473148
mov eax, ebp
call fcn.0046f4a0
cmp eax, esi
jl case.0x47213c.0
mov dword [edx + 0x78], eax
mov edx, dword [ebp + 8]
mov dword [ebp + 0xc], edx
jmp 0x4720f0
cmp byte [edx + 8], 0
je case.0x47213c.0
cmp dword [edx + 0x60], esi
je 0x473148
mov edi, dword [esp + 0x1c]
mov esi, dword [edi + 0x80]
mov ecx, dword [edi + 0x78]
mov eax, dword [edi + 0x7c]
push esi
add edi, 0x5c
push ecx
mov ecx, edi
call fcn.0046b3f0
add esp, 8
test al, al
je 0x4721f2
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx + 0x7c]
push esi
push eax
mov eax, dword [ecx + 0x78]
push eax
call fcn.0046b1a0
add esp, 0xc
mov dword [esp + 0x30], eax
test eax, eax
jne 0x4732bb
mov eax, ebp
call fcn.0046f4a0
cmp eax, dword [esp + 0x58]
ja 0x473152
push eax
push edi
mov eax, ebp
call fcn.00471bd0
mov edx, dword [esp + 0x24]
add esp, 8
mov byte [edx + 0x5d], 1
jmp 0x4720f0
cmp byte [esp + 0xe8], 0
jne case.0x47213c.0
mov ecx, dword [esp + 0x3c]
mov esi, dword [esp + 0x1c]
lea eax, [esp + 0x13]
push eax
push ecx
lea edx, [esp + 0x90]
push edx
push ebp
xor edx, edx
mov eax, esi
call fcn.004716f0
mov eax, dword [esi + 0xb0]
add esp, 0x10
cmp byte [eax + 0x231], 0
jne 0x4732bb
mov edx, dword [ebp + 8]
mov dword [ebp + 0xc], edx
jmp 0x4720f0
cmp byte [esp + 0xe8], 0
jne case.0x47213c.0
mov edx, dword [esp + 0x3c]
mov esi, dword [esp + 0x1c]
lea ecx, [esp + 0x13]
push ecx
push edx
lea eax, [esp + 0x70]
push eax
push ebp
xor edx, edx
mov eax, esi
call fcn.004716f0
mov ecx, dword [esi + 0xb0]
add esp, 0x10
cmp byte [ecx + 0x231], 0
jne 0x4732bb
mov edx, dword [ebp + 8]
mov dword [ebp + 0xc], edx
jmp 0x4720f0
mov eax, dword [ebp + 0xc]
sub eax, dword [ebp + 8]
sar eax, 3
cmp eax, ecx
jbe 0x4722e2
cmp byte [esp + 0x13], 0
jne 0x4722e2
xor ecx, ecx
mov edx, ebp
call fcn.0046f540
add eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x1c]
mov dword [ecx], eax
mov edx, dword [edx + 0xb0]
cmp byte [edx + 0x231], 0
mov byte [esp + 0x13], 1
jne 0x4732bb
mov ecx, ebp
call fcn.0046f4f0
mov ecx, dword [esp + 0x3ec4]
add ecx, eax
push ecx
lea eax, [esp + 0x104]
push ebx
push eax
mov dword [esp + 0x3ed0], ecx
call fcn.00471de0
mov edx, dword [ebp + 8]
add esp, 0xc
mov dword [ebp + 0xc], edx
jmp 0x4720f0
mov esi, dword [ebp + 0xc]
sub esi, dword [ebp + 8]
xor edi, edi
sar esi, 3
test esi, esi
je 0x472cf9
mov ecx, edi
mov edx, ebp
call fcn.0046f540
lea ecx, [edi + 1]
mov edx, ebp
add ebx, eax
call fcn.0046f540
mov ecx, dword [esp + 0x3ec4]
add ecx, eax
push ecx
push ebx
lea eax, [esp + 0x108]
mov dword [esp + 0x3ecc], ecx
call fcn.004712b0
add edi, 2
add esp, 8
cmp edi, esi
jb 0x472341
mov ecx, dword [ebp + 8]
mov dword [esp + 0x3ec0], ebx
mov dword [ebp + 0xc], ecx
jmp 0x4720f0
mov edi, dword [ebp + 0xc]
sub edi, dword [ebp + 8]
sar edi, 3
cmp al, 6
sete byte [esp + 0x12]
xor esi, esi
test edi, edi
je 0x472cf9
lea ebx, [ebx]
mov ecx, esi
mov edx, ebp
call fcn.0046f540
cmp byte [esp + 0x12], 0
je 0x4723c4
add ebx, eax
jmp 0x4723cb
add dword [esp + 0x3ec4], eax
cmp byte [esp + 0x12], 0
mov eax, dword [esp + 0x3ec4]
push eax
sete dl
push ebx
lea eax, [esp + 0x108]
mov byte [esp + 0x1a], dl
call fcn.004712b0
inc esi
add esp, 8
cmp esi, edi
jb 0x4723b0
mov ecx, dword [ebp + 8]
mov dword [esp + 0x3ec0], ebx
mov dword [ebp + 0xc], ecx
jmp 0x4720f0
mov eax, dword [ebp + 0xc]
sub eax, dword [ebp + 8]
xor esi, esi
sar eax, 3
mov dword [esp + 0x20], eax
cmp eax, 6
jb 0x4724c9
mov edi, edi
mov ecx, esi
mov edx, ebp
call fcn.0046f540
lea ecx, [esi + 1]
mov edx, ebp
lea edi, [ebx + eax]
call fcn.0046f540
mov ebx, eax
add ebx, dword [esp + 0x3ec4]
lea ecx, [esi + 2]
mov edx, ebp
call fcn.0046f540
add eax, edi
lea ecx, [esi + 3]
mov edx, ebp
mov dword [esp + 0x14], eax
call fcn.0046f540
add eax, ebx
lea ecx, [esi + 4]
mov edx, ebp
mov dword [esp + 0x2c], eax
call fcn.0046f540
add eax, dword [esp + 0x14]
lea ecx, [esi + 5]
mov edx, ebp
mov dword [esp + 0x24], eax
call fcn.0046f540
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x24]
add eax, ecx
push eax
push edx
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x1c]
push ecx
push eax
push edi
mov eax, ebx
lea ecx, [esp + 0x114]
call fcn.00471420
mov ecx, dword [esp + 0x40]
mov ebx, dword [esp + 0x38]
add esi, 6
lea edx, [esi + 6]
add esp, 0x14
mov dword [esp + 0x3ec4], ecx
cmp edx, dword [esp + 0x20]
jbe 0x472420
mov dword [esp + 0x3ec0], ebx
cmp byte [esp + 0x12], 0x18
jne 0x47250d
mov ecx, esi
mov edx, ebp
call fcn.0046f540
add ebx, eax
lea ecx, [esi + 1]
mov edx, ebp
mov dword [esp + 0x3ec0], ebx
call fcn.0046f540
mov ecx, dword [esp + 0x3ec4]
add ecx, eax
push ecx
push ebx
lea eax, [esp + 0x108]
mov dword [esp + 0x3ecc], ecx
call fcn.004712b0
add esp, 8
mov eax, dword [ebp + 8]
mov dword [ebp + 0xc], eax
jmp 0x4720f0
cmp dword [esp + 0x44], 0x10
jg 0x473148
mov edi, dword [esp + 0x44]
inc edi
mov edx, edi
lea ecx, [esp + 0xa8]
call fcn.0046fe50
mov dword [esp + 0x28], eax
mov eax, ebp
call fcn.0046f4a0
cmp byte [esp + 0x12], 0x1d
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x48]
push eax
je 0x472558
call fcn.0046e210
jmp 0x47255d
call fcn.0046e1c0
add esp, 4
test eax, eax
jne 0x473148
mov dword [esp + 0x44], edi
jmp 0x4720f0
cmp dword [esp + 0x44], ecx
jl 0x473148
mov edx, dword [esp + 0x44]
dec edx
lea ecx, [esp + 0xa8]
mov dword [esp + 0x44], edx
call fcn.0046fe50
mov dword [esp + 0x28], eax
jmp 0x4720f0
mov eax, dword [esp + 0x28]
call fcn.0046f330
movzx edx, al
lea ecx, [edx - 1]
cmp ecx, 0x24
ja case.0x4725b8.3
movzx ecx, byte [ecx + 0x47344c]
jmp dword [ecx*4 + 0x473434]
push esi
push 0x4ef91c
jmp 0x47262f
push esi
push 0x4f00f8
lea eax, [esp + 0x3ec8]
push eax
push ebp
lea edx, [esp + 0x110]
lea ecx, [esp + 0x3ed4]
call fcn.004718c0
mov edx, dword [ebp + 8]
mov ebx, dword [esp + 0x3ed0]
add esp, 0x10
mov dword [ebp + 0xc], edx
jmp 0x4720f0
push esi
push 0x4f0104
lea ecx, [esp + 0x3ec8]
push ecx
push ebp
lea edx, [esp + 0x110]
lea ecx, [esp + 0x3ed4]
call fcn.004718c0
add esp, 0x10
jmp 0x4720e1
push 1
push 0x4f0110
lea edx, [esp + 0x3ec8]
push edx
push ebp
lea edx, [esp + 0x110]
lea ecx, [esp + 0x3ed4]
call fcn.004718c0
add esp, 0x10
jmp 0x4720e1
mov ecx, dword [esp + 0x1c]
cmp byte [ecx + 8], 0
jne case.0x47213c.0
cmp al, 0x26
jae case.0x47213c.0
cmp edx, 0x1e
ja case.0x47213c.0
jmp dword [edx*4 + 0x473474]
mov ecx, ebp
call fcn.0046f4f0
mov ecx, ebp
mov edx, eax
call fcn.0046f4f0
test eax, eax
je 0x4726a6
cmp edx, esi
je 0x4726a6
mov eax, 1
push eax
mov eax, ebp
call fcn.0046f420
add esp, 4
jmp 0x4720f0
xor eax, eax
push eax
mov eax, ebp
call fcn.0046f420
add esp, 4
jmp 0x4720f0
mov ecx, ebp
call fcn.0046f4f0
mov ecx, ebp
mov edx, eax
call fcn.0046f4f0
test eax, eax
jne 0x4726e0
cmp edx, esi
jne 0x4726e0
push eax
mov eax, ebp
call fcn.0046f420
add esp, 4
jmp 0x4720f0
mov eax, 1
push eax
mov eax, ebp
call fcn.0046f420
add esp, 4
jmp 0x4720f0
mov ecx, ebp
call fcn.0046f4f0
xor edx, edx
cmp eax, esi
sete dl
mov eax, ebp
push edx
call fcn.0046f420
add esp, 4
jmp 0x4720f0
mov ecx, ebp
call fcn.0046f4f0
cdq
xor eax, edx
sub eax, edx
push eax
mov eax, ebp
call fcn.0046f460
add esp, 4
jmp 0x4720f0
mov ecx, ebp
call fcn.0046f4f0
mov ecx, ebp
mov edx, eax
call fcn.0046f4f0
add eax, edx
push eax
mov eax, ebp
call fcn.0046f460
add esp, 4
jmp 0x4720f0
mov ecx, ebp
call fcn.0046f4f0
mov ecx, ebp
mov edx, eax
call fcn.0046f4f0
sub eax, edx
push eax
mov eax, ebp
call fcn.0046f460
add esp, 4
jmp 0x4720f0
mov ecx, ebp
call fcn.0046f4f0
mov ecx, ebp
mov edx, eax
call fcn.0046f4f0
push edx
push eax
call fcn.0043c040
push eax
mov eax, ebp
call fcn.0046f460
add esp, 0xc
jmp 0x4720f0
mov ecx, ebp
call fcn.0046f4f0
neg eax
push eax
mov eax, ebp
call fcn.0046f460
add esp, 4
jmp 0x4720f0
mov ecx, ebp
call fcn.0046f4f0
mov ecx, ebp
mov edx, eax
call fcn.0046f4f0
mov edi, eax
xor eax, eax
cmp edi, edx
sete al
push eax
mov eax, ebp
call fcn.0046f420
add esp, 4
jmp 0x4720f0
mov ecx, ebp
call fcn.0046f4f0
jmp 0x4720f0
mov eax, ebp
call fcn.0046f4a0
mov ecx, ebp
mov edx, eax
call fcn.0046f4f0
cmp edx, 0x1f
ja 0x4720f0
mov dword [esp + edx*4 + 0x3e24], eax
jmp 0x4720f0
mov eax, ebp
call fcn.0046f4a0
cmp eax, 0x1f
ja 0x4720f0
mov ecx, dword [esp + eax*4 + 0x3e24]
push ecx
mov eax, ebp
call fcn.0046f460
add esp, 4
jmp 0x4720f0
mov ecx, ebp
call fcn.0046f4f0
mov ecx, ebp
mov edx, eax
call fcn.0046f4f0
mov ecx, ebp
mov edi, eax
call fcn.0046f4f0
mov ecx, ebp
mov esi, eax
call fcn.0046f4f0
cmp edi, edx
jle 0x47285c
mov eax, esi
push eax
mov eax, ebp
call fcn.0046f460
add esp, 4
jmp 0x4720f0
mov edx, dword [esp + 0x48]
mov edx, dword [edx + 0x2e0]
mov eax, dword [edx + 0x288]
mov esi, eax
shl esi, 0xd
mov ecx, eax
xor eax, esi
mov esi, eax
shr esi, 0x11
xor eax, esi
mov esi, eax
and ecx, 0xffff
inc ecx
shl esi, 5
xor esi, eax
push ecx
mov eax, ebp
mov dword [edx + 0x288], esi
call fcn.0046f460
add esp, 4
jmp 0x4720f0
mov ecx, ebp
call fcn.0046f4f0
mov ecx, ebp
mov edx, eax
call fcn.0046f4f0
push edx
push eax
call fcn.0046c780
push eax
mov eax, ebp
call fcn.0046f460
add esp, 0xc
jmp 0x4720f0
mov ecx, ebp
call fcn.0046f4f0
mov esi, eax
test esi, esi
jle 0x472922
push esi
push esi
call fcn.0043c040
lea edi, [eax + esi + 1]
sar edi, 1
add esp, 8
cmp edi, esi
je 0x472924
push edi
push esi
mov dword [esp + 0x1c], edi
call fcn.0043c040
lea edi, [eax + edi + 1]
sar edi, 1
add esp, 8
cmp edi, dword [esp + 0x14]
jne 0x4728f8
push edi
mov eax, ebp
call fcn.0046f460
add esp, 4
jmp 0x4720f0
xor edi, edi
push edi
mov eax, ebp
call fcn.0046f460
add esp, 4
jmp 0x4720f0
mov ecx, ebp
call fcn.0046f4f0
mov edi, eax
push edi
jmp 0x472953
mov ecx, ebp
call fcn.0046f4f0
mov ecx, ebp
mov edx, eax
call fcn.0046f4f0
mov edi, eax
push edx
mov eax, ebp
call fcn.0046f460
push edi
mov eax, ebp
call fcn.0046f460
add esp, 8
jmp 0x4720f0
mov eax, ebp
call fcn.0046f4a0
mov ecx, dword [ebp + 0xc]
sub ecx, dword [ebp + 8]
sar ecx, 3
cmp ecx, esi
jbe 0x4720f0
test eax, eax
js 0x472990
cmp eax, ecx
jb 0x47298e
xor ecx, ecx
jmp 0x472991
sub ecx, eax
dec ecx
mov edx, ebp
call fcn.0046f540
push eax
mov eax, ebp
call fcn.0046f460
add esp, 4
jmp 0x4720f0
mov eax, ebp
call fcn.0046f4a0
mov edx, eax
mov eax, ebp
call fcn.0046f4a0
push edx
push eax
push ebp
call fcn.0046f610
add esp, 0xc
jmp 0x4720f0
mov eax, dword [ebp + 0xc]
sub eax, dword [ebp + 8]
sar eax, 3
cmp eax, ecx
jbe 0x4729e3
cmp byte [esp + 0xe8], 0
jne case.0x47213c.0
mov edx, dword [esp + 0x3c]
mov esi, dword [esp + 0x1c]
lea ecx, [esp + 0x13]
push ecx
push edx
lea eax, [esp + 0x70]
push eax
push ebp
xor edx, edx
mov eax, esi
call fcn.004716f0
mov ecx, dword [esi + 0xb0]
add esp, 0x10
cmp byte [ecx + 0x231], 0
jne 0x4732bb
cmp byte [esp + 0x12], 0x13
jne 0x472a43
mov edx, dword [esp + 0x9c]
add edx, dword [esp + 0x7c]
mov edi, dword [esp + 0x28]
lea ecx, [esp + 0xe4]
call fcn.00471680
mov edx, dword [ebp + 8]
mov dword [ebp + 0xc], edx
jmp 0x4720f0
mov ecx, dword [esp + 0x50]
push ecx
lea edx, [esp + 0x2e60]
push edx
lea eax, [esp + 0x1f48]
mov edi, esi
push eax
lea esi, [esp + 0x2f14]
call fcn.0046e380
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xa8]
add edx, dword [esp + 0x88]
mov edi, dword [esp + 0x34]
pxor xmm0, xmm0
movq qword [esp + 0xd4], xmm0
mov dword [esp + 0xd4], ecx
lea ecx, [esp + 0xd4]
movq qword [esp + 0xdc], xmm0
movq qword [esp + 0xe4], xmm0
mov dword [esp + 0xec], 0
call fcn.00471680
push 0
push 0
lea ecx, [esp + 0xdc]
push ecx
lea edx, [esp + 0x80]
push edx
lea eax, [esp + 0xa4]
push eax
mov ecx, esi
push ecx
call fcn.00470e00
mov edx, dword [ebp + 8]
add esp, 0x24
mov dword [ebp + 0xc], edx
jmp 0x4720f0
mov eax, dword [ebp + 0xc]
sub eax, dword [ebp + 8]
sar eax, 3
cmp eax, 2
jbe 0x472b17
cmp byte [esp + 0x13], 0
jne 0x472b17
xor ecx, ecx
mov edx, ebp
call fcn.0046f540
add eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x1c]
mov dword [ecx], eax
mov edx, dword [edx + 0xb0]
cmp byte [edx + 0x231], 0
mov byte [esp + 0x13], 1
jne 0x4732bb
mov ecx, ebp
call fcn.0046f4f0
mov edx, dword [esp + 0x3ec4]
add edx, eax
mov ecx, ebp
mov dword [esp + 0x3ec4], edx
call fcn.0046f4f0
add ebx, eax
push edx
push ebx
lea eax, [esp + 0x108]
push eax
jmp 0x472bb8
mov eax, dword [ebp + 0xc]
sub eax, dword [ebp + 8]
sar eax, 3
cmp eax, ecx
jbe 0x472b86
cmp byte [esp + 0x13], 0
jne 0x472b86
xor ecx, ecx
mov edx, ebp
call fcn.0046f540
add eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x1c]
mov dword [ecx], eax
mov edx, dword [edx + 0xb0]
cmp byte [edx + 0x231], 0
mov byte [esp + 0x13], 1
jne 0x4732bb
mov ecx, ebp
call fcn.0046f4f0
add ebx, eax
mov eax, dword [esp + 0x3ec4]
push eax
push ebx
lea ecx, [esp + 0x108]
push ecx
mov dword [esp + 0x3ecc], ebx
call fcn.00471de0
add esp, 0xc
mov edx, dword [ebp + 8]
mov dword [ebp + 0xc], edx
jmp 0x4720f0
mov edi, dword [ebp + 0xc]
sub edi, dword [ebp + 8]
mov dword [esp + 0x18], esi
sar edi, 3
mov dword [esp + 0x20], edi
cmp edi, 6
jbe 0x472c3b
mov esi, 6
lea ecx, [ecx]
mov ecx, dword [esp + 0x18]
mov edx, ebp
call fcn.0046f540
lea ecx, [esi - 5]
mov edx, ebp
add ebx, eax
call fcn.0046f540
mov ecx, dword [esp + 0x3ec4]
add ecx, eax
push ecx
push ebx
lea eax, [esp + 0x108]
mov dword [esp + 0x3ecc], ecx
call fcn.004712b0
add dword [esp + 0x20], 2
add esi, 2
add esp, 8
cmp esi, edi
jb 0x472bf0
mov dword [esp + 0x3ec0], ebx
mov esi, dword [esp + 0x18]
cmp esi, edi
jae 0x472cf9
add esi, 2
lea ebx, [ebx]
lea ecx, [esi - 2]
mov edx, ebp
call fcn.0046f540
lea ecx, [esi - 1]
mov edx, ebp
lea edi, [ebx + eax]
call fcn.0046f540
mov ebx, eax
add ebx, dword [esp + 0x3ec4]
mov ecx, esi
mov edx, ebp
call fcn.0046f540
add eax, edi
lea ecx, [esi + 1]
mov edx, ebp
mov dword [esp + 0x14], eax
call fcn.0046f540
add eax, ebx
lea ecx, [esi + 2]
mov edx, ebp
mov dword [esp + 0x2c], eax
call fcn.0046f540
add eax, dword [esp + 0x14]
lea ecx, [esi + 3]
mov edx, ebp
mov dword [esp + 0x24], eax
call fcn.0046f540
mov ecx, dword [esp + 0x2c]
add eax, ecx
push eax
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x28]
push eax
push ecx
mov ecx, dword [esp + 0x20]
push ecx
push edi
mov eax, ebx
lea ecx, [esp + 0x114]
call fcn.00471420
mov edx, dword [esp + 0x40]
mov ebx, dword [esp + 0x38]
add esi, 6
lea eax, [esi - 2]
add esp, 0x14
mov dword [esp + 0x3ec4], edx
cmp eax, dword [esp + 0x20]
jb 0x472c50
mov dword [esp + 0x3ec0], ebx
mov ecx, dword [ebp + 8]
mov dword [ebp + 0xc], ecx
jmp 0x4720f0
mov edi, dword [ebp + 0xc]
sub edi, dword [ebp + 8]
sar edi, 3
mov eax, edi
and eax, 0xfffffffd
sub edi, eax
mov dword [esp + 0x14], eax
cmp edi, eax
jae 0x473059
mov edx, dword [esp + 0x14]
sub edx, edi
test dl, 1
je 0x472d3d
mov ecx, edi
mov edx, ebp
call fcn.0046f540
add eax, ebx
mov dword [esp + 0x20], eax
inc edi
jmp 0x472d41
mov dword [esp + 0x20], ebx
mov ecx, edi
mov edx, ebp
call fcn.0046f540
mov esi, eax
add esi, dword [esp + 0x3ec4]
lea ecx, [edi + 1]
mov edx, ebp
call fcn.0046f540
mov ebx, eax
add ebx, dword [esp + 0x20]
lea ecx, [edi + 2]
mov edx, ebp
call fcn.0046f540
add eax, esi
lea ecx, [edi + 3]
mov edx, ebp
mov dword [esp + 0x24], eax
call fcn.0046f540
mov ecx, dword [esp + 0x24]
add eax, ecx
push eax
push ebx
push ecx
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x2c]
push ebx
push eax
mov eax, esi
lea ecx, [esp + 0x114]
call fcn.00471420
mov ecx, dword [esp + 0x38]
add edi, 4
add esp, 0x14
mov dword [esp + 0x3ec4], ecx
cmp edi, dword [esp + 0x14]
jb 0x472d20
mov edx, dword [ebp + 8]
mov dword [esp + 0x3ec0], ebx
mov dword [ebp + 0xc], edx
jmp 0x4720f0
mov edi, dword [ebp + 0xc]
sub edi, dword [ebp + 8]
sar edi, 3
mov eax, edi
and eax, 0xfffffffd
sub edi, eax
mov dword [esp + 0x14], eax
cmp edi, eax
jae 0x472e8b
mov eax, dword [esp + 0x14]
sub eax, edi
test al, 1
je 0x472e08
mov ecx, edi
mov edx, ebp
call fcn.0046f540
add eax, dword [esp + 0x3ec4]
inc edi
mov dword [esp + 0x20], eax
jmp 0x472e13
mov ecx, dword [esp + 0x3ec4]
mov dword [esp + 0x20], ecx
mov ecx, edi
mov edx, ebp
call fcn.0046f540
lea esi, [ebx + eax]
lea ecx, [edi + 1]
mov edx, ebp
mov dword [esp + 0x24], esi
call fcn.0046f540
lea ecx, [edi + 2]
mov edx, ebp
lea ebx, [esi + eax]
call fcn.0046f540
mov esi, eax
add esi, dword [esp + 0x20]
lea ecx, [edi + 3]
mov edx, ebp
call fcn.0046f540
mov edx, dword [esp + 0x24]
add eax, ebx
push esi
push eax
push esi
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x2c]
push ebx
push edx
lea ecx, [esp + 0x114]
call fcn.00471420
mov ebx, dword [esp + 0x40]
add edi, 4
add esp, 0x14
mov dword [esp + 0x3ec4], esi
cmp edi, dword [esp + 0x14]
jb 0x472de7
mov dword [esp + 0x3ec0], ebx
mov eax, dword [ebp + 8]
mov dword [ebp + 0xc], eax
jmp 0x4720f0
mov esi, dword [ebp + 0xc]
sub esi, dword [ebp + 8]
sar esi, 3
cmp al, 0x1f
sete cl
mov eax, esi
and eax, 0xfffffffd
sub esi, eax
mov dword [esp + 0x14], eax
cmp esi, eax
jae 0x473059
lea edx, [esi + 4]
lea eax, [esi + 3]
mov dword [esp + 0x18], edx
mov dword [esp + 0x40], eax
lea edx, [esi + 2]
lea eax, [esi + 1]
mov dword [esp + 0x38], edx
mov dword [esp + 0x34], eax
jmp 0x472ed9
mov cl, byte [esp + 0x12]
test cl, cl
mov edx, ebp
mov ecx, esi
je 0x472f7c
call fcn.0046f540
mov ecx, dword [esp + 0x3ec4]
add eax, ebx
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x34]
mov edx, ebp
mov dword [esp + 0x2c], eax
call fcn.0046f540
mov ecx, dword [esp + 0x38]
mov edi, eax
add edi, dword [esp + 0x2c]
mov edx, ebp
call fcn.0046f540
mov ecx, dword [esp + 0x40]
mov ebx, eax
add ebx, dword [esp + 0x3ec4]
mov edx, ebp
call fcn.0046f540
mov edx, dword [esp + 0x14]
add eax, ebx
sub edx, esi
mov dword [esp + 0x20], eax
cmp edx, 5
jne 0x472f6e
mov ecx, dword [esp + 0x18]
mov edx, ebp
call fcn.0046f540
add eax, edi
mov dword [esp + 0x54], eax
mov eax, 1
add dword [esp + 0x34], eax
add dword [esp + 0x38], eax
add dword [esp + 0x40], eax
add esi, eax
add dword [esp + 0x18], eax
mov byte [esp + 0x12], 0
jmp 0x472ffe
mov dword [esp + 0x54], edi
mov byte [esp + 0x12], 0
jmp 0x472ffe
mov dword [esp + 0x2c], ebx
call fcn.0046f540
add eax, dword [esp + 0x3ec4]
mov ecx, dword [esp + 0x34]
mov edx, ebp
mov dword [esp + 0x24], eax
call fcn.0046f540
mov ecx, dword [esp + 0x38]
mov edx, ebp
lea edi, [ebx + eax]
call fcn.0046f540
mov ecx, dword [esp + 0x40]
mov ebx, eax
add ebx, dword [esp + 0x24]
mov edx, ebp
call fcn.0046f540
add eax, edi
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x14]
sub eax, esi
cmp eax, 5
jne 0x472ff5
mov ecx, dword [esp + 0x18]
mov edx, ebp
call fcn.0046f540
add eax, ebx
mov dword [esp + 0x20], eax
mov eax, 1
add dword [esp + 0x34], eax
add dword [esp + 0x38], eax
add dword [esp + 0x40], eax
add esi, eax
add dword [esp + 0x18], eax
jmp 0x472ff9
mov dword [esp + 0x20], ebx
mov byte [esp + 0x12], 1
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x2c]
push ecx
push edx
push ebx
push edi
push eax
mov eax, dword [esp + 0x38]
lea ecx, [esp + 0x114]
call fcn.00471420
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x68]
mov eax, 4
add dword [esp + 0x48], eax
add dword [esp + 0x4c], eax
add dword [esp + 0x54], eax
add dword [esp + 0x2c], eax
add esi, eax
add esp, 0x14
mov dword [esp + 0x3ec4], ecx
cmp esi, dword [esp + 0x14]
jb 0x472ed5
mov dword [esp + 0x3ec0], ebx
mov edx, dword [ebp + 8]
mov dword [ebp + 0xc], edx
jmp 0x4720f0
mov esi, dword [esp + 0x28]
mov eax, esi
call fcn.0046f330
mov edi, eax
mov eax, esi
call fcn.0046f330
cwde
shl edi, 8
movsx ecx, di
or eax, ecx
push eax
mov eax, ebp
call fcn.0046f420
add esp, 4
jmp 0x4720f0
cmp al, 0xf6
ja 0x4730ab
add edi, 0xffffff75
push edi
mov eax, ebp
call fcn.0046f420
add esp, 4
jmp 0x4720f0
cmp al, 0xfa
ja 0x4730d2
mov eax, dword [esp + 0x28]
call fcn.0046f330
shl edi, 8
lea edi, [eax + edi - 0xf694]
push edi
mov eax, ebp
call fcn.0046f420
add esp, 4
jmp 0x4720f0
cmp al, 0xfe
ja 0x4730fb
mov eax, dword [esp + 0x28]
call fcn.0046f330
shl edi, 8
mov ecx, 0xfa94
sub ecx, edi
sub ecx, eax
push ecx
mov eax, ebp
call fcn.0046f420
add esp, 4
jmp 0x4720f0
mov esi, dword [esp + 0x28]
mov eax, esi
call fcn.0046f330
mov edi, eax
mov eax, esi
call fcn.0046f330
mov esi, eax
mov eax, dword [esp + 0x28]
call fcn.0046f330
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x28]
call fcn.0046f330
shl edi, 8
or edi, esi
shl edi, 8
or edi, dword [esp + 0x14]
shl edi, 8
or eax, edi
push eax
mov eax, ebp
call fcn.0046f460
add esp, 4
jmp 0x4720f0
mov eax, 0x12
jmp 0x4732c1
mov eax, 0x12
jmp 0x4732bf
mov eax, dword [ebp + 0xc]
sub eax, dword [ebp + 8]
sar eax, 3
cmp eax, ecx
je 0x47316e
cmp eax, 5
jne 0x47318c
cmp byte [esp + 0x13], 0
jne 0x47318c
xor ecx, ecx
mov edx, ebp
call fcn.0046f540
add eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x3c]
mov dword [edx], eax
mov edx, dword [esp + 0x1c]
mov eax, dword [edx + 0xb0]
cmp byte [eax + 0x231], 0
jne 0x4732bb
lea esi, [esp + 0x100]
call fcn.00471610
mov ecx, dword [esp + 0x1c]
cmp byte [ecx + 8], 0
jne 0x4732bb
mov edx, dword [ebp + 0xc]
sub edx, dword [ebp + 8]
sar edx, 3
cmp edx, 1
jbe 0x4732bb
cmp byte [esp + 0x3ebc], 0
je 0x4731e2
mov dword [esp + 0x30], 0x12
jmp 0x4732bb
mov eax, ebp
call fcn.0046f4a0
mov edx, eax
mov eax, ebp
call fcn.0046f4a0
mov ecx, ebp
mov dword [esp + 0x50], eax
call fcn.0046f4f0
mov ecx, ebp
mov ebx, eax
call fcn.0046f4f0
mov esi, dword [esp + 0x48]
mov dword [esp + 0x3ec0], eax
lea edi, [esp + 0xc8]
mov eax, edx
mov ecx, esi
call fcn.004708b0
test eax, eax
je 0x47322e
mov dword [esp + 0x30], eax
jmp 0x4732bb
mov ecx, dword [esp + 0x3ec0]
mov edx, dword [esp + 0x60]
lea eax, [esp + 0x58]
push eax
mov eax, dword [esp + 0x60]
push ebx
mov ebx, dword [esp + 0x24]
push ecx
push 1
push edx
push eax
lea ecx, [esp + 0xe0]
push ecx
push ebx
call fcn.00471e70
add esp, 0x20
lea edx, [esp + 0xc8]
mov eax, esi
call fcn.00470950
mov eax, dword [esp + 0x50]
lea edi, [esp + 0xc8]
mov ecx, esi
call fcn.004708b0
test eax, eax
je 0x473287
mov dword [esp + 0x30], eax
jmp 0x4732bb
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x5c]
lea edx, [esp + 0x58]
push edx
push 0
push 0
push 1
push eax
push ecx
lea edx, [esp + 0xe0]
push edx
push ebx
call fcn.00471e70
add esp, 0x20
lea edx, [esp + 0xc8]
mov eax, esi
call fcn.00470950
mov eax, dword [esp + 0x30]
xor esi, esi
mov ecx, dword [esp + 0x18]
cmp ecx, esi
je 0x4732cf
cmp dword [ecx], esi
jne 0x4732cf
mov dword [ecx], eax
mov eax, dword [esp + 0x2e78]
mov ecx, dword [esp + 0x2e5c]
push eax
push ecx
mov dword [esp + 0x2e70], esi
mov dword [esp + 0x2e78], esi
mov dword [esp + 0x2e7c], esi
call fcn.0043fac0
mov edx, dword [esp + 0x8c]
mov eax, dword [esp + 0x70]
push edx
push eax
mov dword [esp + 0x2e88], esi
mov dword [esp + 0x84], esi
mov dword [esp + 0x8c], esi
mov dword [esp + 0x90], esi
call fcn.0043fac0
mov ecx, dword [esp + 0xb4]
mov edx, dword [esp + 0x98]
push ecx
push edx
mov dword [esp + 0x9c], esi
mov dword [esp + 0xac], esi
mov dword [esp + 0xb4], esi
mov dword [esp + 0xb8], esi
call fcn.0043fac0
mov eax, dword [esp + 0xdc]
mov ecx, dword [esp + 0xc0]
push eax
push ecx
mov dword [esp + 0xc4], esi
call fcn.0043fac0
add esp, 0x20
cmp ebp, esi
je 0x473399
mov edx, dword [ebp + 8]
mov esi, dword [ebp]
push edx
push esi
call fcn.0043fac0
push ebp
push esi
mov dword [ebp + 8], 0
call fcn.0043fac0
add esp, 0x10
mov ecx, dword [esp + 0x3ea4]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00493576
add esp, 0x3e98
ret