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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x3cc]
cmp eax, dword [ecx + 8]
jbe 0x47e41b
sub esp, 0x44c
lea edi, [esp + 0x468]
xor eax, eax
call fcn.0045f76b
mov ecx, dword [esp + 0x454]
mov edx, dword [esp + 0x450]
mov ebx, dword [esp + 0x45c]
mov ebp, dword [esp + 0x458]
xor esi, esi
xor edi, edi
xor ecx, ecx
mov byte [esp + 0x36], cl
xor edx, edx
mov byte [esp + 0x37], dl
mov edx, 0xffffffff
mov dword [esp + 0x88], edx
mov ebx, 0xffffffff
mov dword [esp + 0xbc], ebx
mov ebx, 0xffffffff
mov dword [esp + 0xe8], ebx
xor ebx, ebx
mov dword [esp + 0x3dc], ebx
mov ebp, 0xffffffff
mov dword [esp + 0x7c], ebp
xor ebp, ebp
mov dword [esp + 0x80], ebp
xor ebp, ebp
mov dword [esp + 0x3d8], ebp
xor ebp, ebp
mov dword [esp + 0x84], ebp
xor ebp, ebp
mov dword [esp + 0xb0], ebp
xor ebp, ebp
mov dword [esp + 0xc4], ebp
xor ebp, ebp
mov dword [esp + 0xe0], ebp
xor ebp, ebp
mov dword [esp + 0x9c], ebp
mov ecx, dword [esp + 0x454]
mov edx, dword [esp + 0x450]
mov ebx, dword [esp + 0x45c]
mov ebp, dword [esp + 0x458]
jmp 0x47ba72
mov edx, dword [esp + 0x3e4]
mov ebx, esi
mov esi, eax
mov edi, dword [esp + 0x3f4]
mov dword [esp + 0xfc], ebx
mov dword [esp + 0x40c], ebp
mov dword [esp + 0xa4], esi
mov dword [esp + 0x3f4], edi
mov dword [esp + 0x408], edx
mov dword [esp + 0xf8], ecx
mov dword [esp], edx
mov dword [esp + 4], ecx
call fcn.00477660
mov eax, dword [esp + 0x10]
mov dword [esp + 0x98], eax
mov ecx, dword [esp + 8]
mov dword [esp + 0x3f8], ecx
mov edx, dword [esp + 0xc]
mov dword [esp + 0xa8], edx
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x94], ebx
mov ebp, dword [esp + 0x14]
mov dword [esp + 0x3e4], ebp
mov esi, dword [esp + 0x40c]
mov dword [esp], esi
mov esi, dword [esp + 0xfc]
mov dword [esp + 4], esi
call fcn.0047b6c0
mov eax, dword [esp + 0xf8]
mov ecx, dword [esp + 0x94]
sub eax, ecx
mov edx, dword [esp + 0xa8]
sub eax, edx
mov ebx, eax
neg eax
sar eax, 0x1f
and eax, edx
mov ebp, dword [esp + 0x408]
add eax, ebp
mov ebp, dword [esp + 0x10]
mov dword [esp + 0x40c], ebp
mov esi, dword [esp + 0x14]
mov dword [esp + 0x90], esi
mov edi, dword [esp + 0x18]
test edi, edi
jne 0x47dbd6
mov edx, dword [esp + 0x98]
test edx, edx
je 0x47ca3b
mov dword [esp + 0xfc], ebx
mov dword [esp + 0x3e8], eax
and edx, 0xffff
cmp edx, 0x106
jg 0x47c33d
cmp edx, 0x23
jg 0x47c0e7
cmp edx, 0x21
jg 0x47bfef
cmp edx, 0x17
jne 0x47bc8e
mov dword [esp + 0xe4], edi
cmp esi, 3
jl 0x47bbe7
cmp word [ebp], 0x5455
jne 0x47bbe7
cmp byte [ebp + 2], 0x43
jne 0x47bbe7
mov edx, dword [0xa16f14]
lea eax, [esi - 3]
mov dword [esp + 0xf8], eax
neg eax
sar eax, 0x1f
and eax, 3
add eax, ebp
mov esi, dword [esp + 0xf8]
mov ebp, eax
mov dword [esp + 0x3dc], edx
mov eax, dword [esp + 0x3e8]
mov edx, dword [esp + 0x90]
jmp 0x47ca1f
mov dword [esp], ebp
mov dword [esp + 4], esi
call fcn.0047e430
mov eax, dword [esp + 8]
movzx ecx, byte [esp + 0xc]
test cl, cl
je 0x47bc5e
mov esi, dword [esp + 0x90]
mov ecx, esi
sub esi, eax
mov ebx, esi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and esi, eax
mov ebp, dword [esp + 0x40c]
mov edx, ecx
lea ecx, [esi + ebp]
mov esi, ebx
mov ebp, ecx
mov edi, dword [esp + 0xe4]
mov dword [esp + 0x80], eax
mov ecx, dword [esp + 0x40c]
mov dword [esp + 0x3d8], ecx
mov eax, dword [esp + 0x3e8]
mov ecx, dword [esp + 0x94]
mov ebx, dword [esp + 0xfc]
jmp 0x47ca1f
mov edi, dword [0xa1d8d8]
mov eax, dword [esp + 0x3e8]
mov ecx, dword [esp + 0x94]
mov edx, dword [esp + 0x90]
mov ebx, dword [esp + 0xfc]
mov esi, edx
mov ebp, dword [esp + 0x40c]
jmp 0x47ca1f
cmp edx, 0x18
jl 0x47c728
mov edx, dword [esp + 0x98]
cmp edx, 0x18
je 0x47bcad
cmp edx, 0x1a
je 0x47bcad
cmp edx, 0x1b
jne 0x47bcfc
cmp esi, 1
jl 0x47bcf7
cmp byte [ebp], 0x5a
jne 0x47bcf7
lea ebx, [esi - 1]
mov dword [esp + 0xf8], ebx
neg ebx
sar ebx, 0x1f
and ebx, 1
add ebx, ebp
mov ecx, dword [0xa16f14]
mov edx, esi
mov esi, dword [esp + 0xf8]
mov ebp, ebx
mov dword [esp + 0x3dc], ecx
mov ecx, dword [esp + 0x94]
mov ebx, dword [esp + 0xfc]
jmp 0x47ca1f
cmp edx, 0x1b
je 0x47bd01
cmp edx, 0x20
jne 0x47bd60
cmp esi, 6
jge 0x47bd13
mov edi, dword [0xa1d8d8]
mov edx, esi
jmp 0x47ca1f
cmp byte [ebp + 3], 0x3a
je 0x47bd26
mov edi, dword [0xa1d8d8]
mov edx, esi
jmp 0x47ca1f
lea edx, [ebp + 1]
lea edi, [ebp + 4]
lea eax, [esi - 6]
mov dword [esp + 0xf8], eax
neg eax
sar eax, 0x1f
and eax, 6
add eax, ebp
mov dword [esp + 0x120], eax
lea eax, [0x6b6d63]
mov dword [esp + 0x3ec], eax
mov eax, dword [esp + 0x120]
jmp 0x47bee8
cmp edx, 0x1f
je 0x47bd6a
cmp edx, 0x1a
jne 0x47bdc4
cmp esi, 3
jge 0x47bd7c
mov edi, dword [0xa1d8d8]
mov edx, esi
jmp 0x47ca1f
lea edx, [ebp + 1]
lea edi, [esi - 3]
mov dword [esp + 0xf8], edi
xchg edi, ebx
neg ebx
xchg edi, ebx
sar edi, 0x1f
and edi, 3
add edi, ebp
mov dword [esp + 0x128], eax
lea eax, [0x6b6d63]
mov dword [esp + 0x3fc], eax
lea eax, [0x6b6d63]
mov dword [esp + 0x3ec], eax
mov eax, dword [esp + 0x128]
jmp 0x47bedf
cmp edx, 0x1c
je 0x47bdce
cmp edx, 0x21
jne 0x47be32
cmp esi, 9
jge 0x47bde0
mov edi, dword [0xa1d8d8]
mov edx, esi
jmp 0x47ca1f
cmp byte [ebp + 3], 0x3a
jne 0x47bdec
cmp byte [ebp + 6], 0x3a
je 0x47bdf9
mov edi, dword [0xa1d8d8]
mov edx, esi
jmp 0x47ca1f
lea edx, [ebp + 1]
lea edi, [ebp + 4]
lea eax, [ebp + 7]
lea ebx, [esi - 9]
mov dword [esp + 0xf8], ebx
neg ebx
sar ebx, 0x1f
and ebx, 9
add ebx, ebp
mov dword [esp + 0x3ec], eax
mov esi, ebx
mov eax, dword [esp + 0x3e8]
mov ebx, dword [esp + 0xfc]
jmp 0x47becf
cmp edx, 0x19
je 0x47be3c
cmp edx, 0x1e
jne 0x47be84
cmp esi, 7
jge 0x47be4e
mov edi, dword [0xa1d8d8]
mov edx, esi
jmp 0x47ca1f
lea edx, [ebp + 1]
lea edi, [ebp + 3]
lea eax, [ebp + 5]
lea ebx, [esi - 7]
mov dword [esp + 0xf8], ebx
neg ebx
sar ebx, 0x1f
and ebx, 7
add ebx, ebp
mov dword [esp + 0x3ec], eax
mov esi, ebx
mov eax, dword [esp + 0x3e8]
mov ebx, dword [esp + 0xfc]
jmp 0x47becf
cmp esi, 5
jge 0x47be96
mov edi, dword [0xa1d8d8]
mov edx, esi
jmp 0x47ca1f
lea edx, [ebp + 1]
lea edi, [ebp + 3]
add esi, 0xfffffffb
mov dword [esp + 0xf8], esi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and esi, 5
add esi, ebp
mov dword [esp + 0x130], eax
lea eax, [0x6b6d63]
mov dword [esp + 0x3ec], eax
mov eax, dword [esp + 0x130]
mov dword [esp + 0x3fc], edi
mov edi, esi
mov esi, dword [esp + 0x90]
mov eax, edi
mov edi, dword [esp + 0x3fc]
mov dword [esp + 0x3fc], edi
mov dword [esp + 0x408], eax
mov dword [esp], edx
mov dword [esp + 4], 2
mov byte [esp + 8], 1
call fcn.0047b5b0
mov eax, dword [esp + 0xc]
mov dword [esp + 0xdc], eax
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x47bf22
xor edx, edx
jmp 0x47bf4f
mov eax, dword [esp + 0x3fc]
mov dword [esp], eax
mov dword [esp + 4], 2
mov byte [esp + 8], 1
call fcn.0047b5b0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x18]
mov edx, eax
mov eax, dword [esp + 0xdc]
test ecx, ecx
je 0x47bf57
xor ebx, ebx
jmp 0x47bf92
mov dword [esp + 0xc0], edx
mov eax, dword [esp + 0x3ec]
mov dword [esp], eax
mov dword [esp + 4], 2
mov byte [esp + 8], 1
call fcn.0047b5b0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0xc0]
mov ebx, eax
mov eax, dword [esp + 0xdc]
imul eax, eax, 0x3c
add eax, edx
imul eax, eax, 0x3c
add eax, ebx
mov edx, dword [esp + 0x40c]
movzx ebx, byte [edx]
cmp bl, 0x2b
je 0x47bfba
cmp bl, 0x2d
jne 0x47bfb4
neg eax
jmp 0x47bfba
mov ecx, dword [0xa1d8d8]
mov edx, dword [esp + 0x90]
mov ebx, dword [esp + 0xfc]
mov esi, dword [esp + 0xf8]
mov ebp, dword [esp + 0x408]
mov edi, ecx
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x3e8]
mov ecx, dword [esp + 0x94]
jmp 0x47ca1f
cmp edx, 0x22
jne 0x47c0ba
mov edx, dword [esp + 0x98]
sar edx, 0x10
and edx, 0xfff
lea edi, [edx + 1]
cmp esi, edi
jge 0x47c01c
mov edi, dword [0xa1d8d8]
mov edx, esi
jmp 0x47ca1f
mov dword [esp + 0x78], edx
mov dword [esp + 0xb4], edi
lea eax, [0x895210]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
mov dword [esp + 0xc], edi
call fcn.00486290
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x90]
mov edx, dword [esp + 0x78]
sub ecx, edx
lea esi, [ecx - 1]
mov ecx, esi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
mov edx, dword [esp + 0xb4]
and edx, esi
mov ebp, dword [esp + 0x40c]
add edx, ebp
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0xa4], esi
mov dword [esp + 0x3f4], edi
mov esi, ecx
mov ebp, edx
mov edi, ebx
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0x3e8]
mov ecx, dword [esp + 0x94]
mov edx, dword [esp + 0x90]
mov ebx, dword [esp + 0xfc]
jmp 0x47ca1f
cmp esi, 2
jl 0x47c0e0
movzx edx, byte [ebp]
cmp dl, 0x2e
je 0x47c0cd
cmp dl, 0x2c
jne 0x47c0e0
movzx edx, byte [ebp + 1]
add edx, 0xffffffd0
cmp dl, 9
ja 0x47c0e0
xor edx, edx
jmp 0x47e364
mov edx, esi
jmp 0x47ca1f
cmp edx, 0x102
jg 0x47c1cd
cmp edx, 0x101
je 0x47c16a
cmp edx, 0x102
jne 0x47c728
mov eax, dword [0xa17b78]
mov ecx, dword [0xa17b7c]
mov edx, dword [0xa17b80]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], esi
call fcn.004780d0
mov eax, dword [esp + 0x14]
inc eax
mov ebp, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x20]
mov ecx, dword [esp + 0x94]
mov edx, dword [esp + 0x90]
mov ebx, dword [esp + 0xfc]
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0x3e8]
jmp 0x47ca1f
mov eax, dword [0xa17b58]
mov ecx, dword [0xa17b5c]
mov edx, dword [0xa17b60]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], esi
call fcn.004780d0
mov eax, dword [esp + 0x14]
inc eax
mov ebp, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x20]
mov ecx, dword [esp + 0x94]
mov edx, dword [esp + 0x90]
mov ebx, dword [esp + 0xfc]
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0x3e8]
jmp 0x47ca1f
cmp edx, 0x104
jle 0x47c29b
cmp edx, 0x105
je 0x47c244
cmp edx, 0x106
jne 0x47c728
mov eax, dword [0xa17b68]
mov ecx, dword [0xa17b6c]
mov edx, dword [0xa17b70]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], esi
call fcn.004780d0
mov ebp, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x20]
mov eax, dword [esp + 0x3e8]
mov ecx, dword [esp + 0x94]
mov edx, dword [esp + 0x90]
mov ebx, dword [esp + 0xfc]
jmp 0x47ca1f
mov eax, dword [0xa17b48]
mov ecx, dword [0xa17b4c]
mov edx, dword [0xa17b50]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], esi
call fcn.004780d0
mov ebp, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x20]
mov eax, dword [esp + 0x3e8]
mov ecx, dword [esp + 0x94]
mov edx, dword [esp + 0x90]
mov ebx, dword [esp + 0xfc]
jmp 0x47ca1f
mov eax, dword [esp + 0x98]
cmp eax, 0x104
sete al
mov dword [esp], ebp
mov dword [esp + 4], esi
mov byte [esp + 8], al
call fcn.0047b5b0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
test ebx, ebx
je 0x47c2de
mov ebp, dword [esp + 0xa4]
mov esi, dword [esp + 0x3f4]
jmp 0x47c301
lea ebp, [eax - 1]
cmp ebp, 0xb
jbe 0x47c2f3
mov ebp, 5
lea esi, [0x6b741d]
jmp 0x47c301
mov ebp, dword [esp + 0xa4]
mov esi, dword [esp + 0x3f4]
mov dword [esp + 0xa4], ebp
mov dword [esp + 0x3f4], esi
mov esi, edx
mov ebp, ecx
mov edi, ebx
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0x3e8]
mov ecx, dword [esp + 0x94]
mov edx, dword [esp + 0x90]
mov ebx, dword [esp + 0xfc]
jmp 0x47ca1f
cmp edx, 0x20c
jg 0x47c5f2
cmp edx, 0x10b
jg 0x47c401
cmp edx, 0x109
jle 0x47c376
mov edx, dword [esp + 0x98]
mov edi, esi
xor esi, esi
mov dword [esp + 0xd8], esi
mov esi, edi
jmp 0x47e275
mov edx, dword [esp + 0x98]
cmp edx, 0x108
jne 0x47c3b0
test esi, esi
je 0x47c3b0
cmp byte [ebp], 0x20
jne 0x47c3b0
lea edi, [esi - 1]
mov dword [esp + 0xf8], edi
xchg edi, ebx
neg ebx
xchg edi, ebx
sar edi, 0x1f
and edi, 1
add edi, ebp
mov esi, dword [esp + 0xf8]
mov ebp, edi
cmp edx, 0x109
sete al
mov dword [esp], ebp
mov dword [esp + 4], esi
mov byte [esp + 8], al
call fcn.0047b5b0
mov eax, dword [esp + 0xc]
mov ebp, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x94]
mov edx, dword [esp + 0x90]
mov ebx, dword [esp + 0xfc]
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0x3e8]
jmp 0x47ca1f
cmp edx, 0x113
jne 0x47c499
cmp esi, 4
jl 0x47c41e
movzx edx, byte [ebp]
add edx, 0xffffffd0
cmp dl, 9
jbe 0x47c42b
mov edi, dword [0xa1d8d8]
mov edx, esi
jmp 0x47ca1f
lea eax, [0x895208]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], 4
call fcn.004863c0
mov eax, dword [esp + 0x90]
lea esi, [eax - 4]
mov ecx, esi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and esi, 4
mov edx, dword [esp + 0x40c]
lea ebp, [esi + edx]
mov ebx, dword [esp + 0xc]
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x3e8]
mov edx, dword [esp + 0x90]
mov esi, ecx
mov dword [esp + 0x84], ebx
mov ecx, dword [esp + 0x94]
mov ebx, dword [esp + 0xfc]
jmp 0x47ca1f
cmp edx, 0x114
jne 0x47c569
cmp esi, 2
jge 0x47c4b7
mov edi, dword [0xa1d8d8]
mov edx, esi
jmp 0x47ca1f
lea eax, [0x895208]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], 2
call fcn.004863c0
mov eax, dword [esp + 0x90]
lea ecx, [eax - 2]
mov edx, ecx
neg ecx
sar ecx, 0x1f
and ecx, 2
mov ebx, dword [esp + 0x40c]
add ecx, ebx
mov ebp, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
test esi, esi
je 0x47c528
mov eax, dword [esp + 0x3e8]
mov ebx, dword [esp + 0xfc]
mov edi, esi
mov dword [esp + 0x84], ebp
mov esi, edx
mov ebp, ecx
mov ecx, dword [esp + 0x94]
mov edx, dword [esp + 0x90]
jmp 0x47ca1f
cmp ebp, 0x45
jl 0x47c535
add ebp, 0x76c
jmp 0x47c53b
add ebp, 0x7d0
mov eax, dword [esp + 0x3e8]
mov ebx, dword [esp + 0xfc]
mov edi, esi
mov dword [esp + 0x84], ebp
mov esi, edx
mov ebp, ecx
mov ecx, dword [esp + 0x94]
mov edx, dword [esp + 0x90]
jmp 0x47ca1f
cmp edx, 0x20c
jne 0x47c728
mov dword [esp], ebp
mov dword [esp + 4], esi
mov byte [esp + 8], 0
call fcn.0047b5b0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
cmp eax, 0x18
jb 0x47c5a8
mov ebp, 4
lea esi, [0x6b71c6]
jmp 0x47c5b6
mov ebp, dword [esp + 0xa4]
mov esi, dword [esp + 0x3f4]
mov dword [esp + 0xa4], ebp
mov dword [esp + 0x3f4], esi
mov esi, edx
mov ebp, ecx
mov edi, ebx
mov dword [esp + 0xe0], eax
mov eax, dword [esp + 0x3e8]
mov ecx, dword [esp + 0x94]
mov edx, dword [esp + 0x90]
mov ebx, dword [esp + 0xfc]
jmp 0x47ca1f
cmp edx, 0x210
jle 0x47c902
cmp edx, 0x212
jle 0x47c72f
cmp edx, 0x215
jne 0x47c699
cmp esi, 2
jge 0x47c628
mov edi, dword [0xa1d8d8]
mov edx, esi
jmp 0x47ca1f
lea edx, [esi - 2]
mov dword [esp + 0xf8], edx
neg edx
sar edx, 0x1f
and edx, 2
add edx, ebp
cmp word [ebp], 0x4d41
jne 0x47c65d
mov dword [esp + 0x110], eax
mov eax, 1
mov byte [esp + 0x37], al
mov eax, dword [esp + 0x110]
jmp 0x47c684
cmp word [ebp], 0x4d50
jne 0x47c67e
mov dword [esp + 0x118], eax
mov eax, 1
mov byte [esp + 0x36], al
mov eax, dword [esp + 0x118]
jmp 0x47c684
mov edi, dword [0xa1d8d8]
mov esi, dword [esp + 0xf8]
mov ebp, edx
mov edx, dword [esp + 0x90]
jmp 0x47ca1f
cmp edx, 0x216
jne 0x47c728
cmp esi, 2
jge 0x47c6b7
mov edi, dword [0xa1d8d8]
mov edx, esi
jmp 0x47ca1f
lea edx, [esi - 2]
mov dword [esp + 0xf8], edx
neg edx
sar edx, 0x1f
and edx, 2
add edx, ebp
cmp word [ebp], 0x6d61
jne 0x47c6ec
mov dword [esp + 0x100], eax
mov eax, 1
mov byte [esp + 0x37], al
mov eax, dword [esp + 0x100]
jmp 0x47c713
cmp word [ebp], 0x6d70
jne 0x47c70d
mov dword [esp + 0x108], eax
mov eax, 1
mov byte [esp + 0x36], al
mov eax, dword [esp + 0x108]
jmp 0x47c713
mov edi, dword [0xa1d8d8]
mov esi, dword [esp + 0xf8]
mov ebp, edx
mov edx, dword [esp + 0x90]
jmp 0x47ca1f
mov edx, esi
jmp 0x47ca1f
mov eax, dword [esp + 0x98]
cmp eax, 0x212
sete al
mov dword [esp], ebp
mov dword [esp + 4], esi
mov byte [esp + 8], al
call fcn.0047b5b0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
test ebx, ebx
je 0x47c790
mov esi, edx
mov ebp, ecx
mov edi, ebx
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x3e8]
mov ecx, dword [esp + 0x94]
mov edx, dword [esp + 0x90]
mov ebx, dword [esp + 0xfc]
jmp 0x47ca1f
cmp eax, 0x3c
jb 0x47c7dc
mov ebp, 6
mov dword [esp + 0xa4], ebp
lea esi, [0x6b7750]
mov dword [esp + 0x3f4], esi
mov esi, edx
mov ebp, ecx
mov edi, ebx
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x3e8]
mov ecx, dword [esp + 0x94]
mov edx, dword [esp + 0x90]
mov ebx, dword [esp + 0xfc]
jmp 0x47ca1f
cmp edx, 2
jl 0x47c8e8
movzx ebp, byte [ecx]
xchg ebp, eax
cmp al, 0x2e
xchg ebp, eax
je 0x47c7fa
xchg ebp, eax
cmp al, 0x2c
xchg ebp, eax
jne 0x47c8ce
movzx ebp, byte [ecx + 1]
add ebp, 0xffffffd0
xchg ebp, eax
cmp al, 9
xchg ebp, eax
jbe 0x47c822
mov ebp, dword [esp + 0xa4]
mov esi, dword [esp + 0x3f4]
mov edi, dword [esp + 0xb0]
jmp 0x47e1af
mov dword [esp + 0xf4], eax
mov dword [esp + 0xf0], ebx
mov dword [esp + 0x3f0], ecx
mov dword [esp + 0xa0], edx
mov eax, dword [esp + 0x3e4]
mov dword [esp], eax
mov ecx, dword [esp + 0x94]
mov dword [esp + 4], ecx
call fcn.00477660
mov eax, dword [esp + 0x10]
and eax, 0xffff
cmp eax, 0x22
je 0x47c86b
cmp eax, 0x23
jne 0x47c8b6
mov eax, dword [esp + 0x3e8]
mov ecx, dword [esp + 0x94]
mov edx, dword [esp + 0x90]
mov ebx, dword [esp + 0xfc]
mov esi, dword [esp + 0xa0]
mov ebp, dword [esp + 0x3f0]
mov edi, dword [esp + 0xf0]
mov eax, dword [esp + 0xf4]
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x3e8]
jmp 0x47ca1f
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0x3f0]
mov edx, 2
jmp 0x47e1f3
mov ebp, dword [esp + 0xa4]
mov esi, dword [esp + 0x3f4]
mov edi, dword [esp + 0xb0]
jmp 0x47e1af
mov ebp, dword [esp + 0xa4]
mov esi, dword [esp + 0x3f4]
mov edi, dword [esp + 0xb0]
jmp 0x47e1af
cmp edx, 0x20e
jg 0x47c999
mov eax, dword [esp + 0x98]
cmp eax, 0x20e
sete al
mov dword [esp], ebp
mov dword [esp + 4], esi
mov byte [esp + 8], al
call fcn.0047b5b0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
cmp eax, 0xc
jbe 0x47c94f
mov ebp, 4
lea esi, [0x6b71c6]
jmp 0x47c95d
mov ebp, dword [esp + 0xa4]
mov esi, dword [esp + 0x3f4]
mov dword [esp + 0xa4], ebp
mov dword [esp + 0x3f4], esi
mov esi, edx
mov ebp, ecx
mov edi, ebx
mov dword [esp + 0xe0], eax
mov eax, dword [esp + 0x3e8]
mov ecx, dword [esp + 0x94]
mov edx, dword [esp + 0x90]
mov ebx, dword [esp + 0xfc]
jmp 0x47ca1f
mov eax, dword [esp + 0x98]
cmp eax, 0x210
sete al
mov dword [esp], ebp
mov dword [esp + 4], esi
mov byte [esp + 8], al
call fcn.0047b5b0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
cmp eax, 0x3c
jb 0x47c9da
mov ebp, 6
lea esi, [0x6b771a]
jmp 0x47c9e8
mov ebp, dword [esp + 0xa4]
mov esi, dword [esp + 0x3f4]
mov dword [esp + 0xa4], ebp
mov dword [esp + 0x3f4], esi
mov esi, edx
mov ebp, ecx
mov edi, ebx
mov dword [esp + 0xc4], eax
mov eax, dword [esp + 0x3e8]
mov ecx, dword [esp + 0x94]
mov edx, dword [esp + 0x90]
mov ebx, dword [esp + 0xfc]
mov eax, dword [esp + 0xa4]
test eax, eax
jne 0x47df60
test edi, edi
je 0x47ba60
jmp 0x47dd9b
test esi, esi
jne 0x47d9c1
movzx ecx, byte [esp + 0x36]
test cl, cl
je 0x47ca5d
mov ecx, dword [esp + 0xe0]
cmp ecx, 0xc
jge 0x47ca64
add ecx, 0xc
jmp 0x47ca74
mov ecx, dword [esp + 0xe0]
movzx edx, byte [esp + 0x37]
test dl, dl
je 0x47ca74
cmp ecx, 0xc
jne 0x47ca74
xor ecx, ecx
mov edx, dword [esp + 0x88]
test edx, edx
jl 0x47d087
mov eax, dword [esp + 0x84]
test eax, 3
jne 0x47cb1b
mov ebx, 0x51eb851f
mov edi, edx
imul ebx
mov dword [esp + 0xfc], edx
mov eax, dword [esp + 0x84]
sar eax, 0x1f
sar edx, 5
sub edx, eax
imul edx, edx, 0x64
mov esi, dword [esp + 0x84]
cmp esi, edx
jne 0x47cad8
mov edx, dword [esp + 0xfc]
sar edx, 7
sub edx, eax
imul edx, edx, 0x190
cmp esi, edx
jne 0x47cb0a
cmp edi, 0x3c
jne 0x47caeb
mov edx, edi
mov eax, 2
mov edi, 0x1d
jmp 0x47caf8
jle 0x47caf2
lea edx, [edi - 1]
jmp 0x47caf4
mov edx, edi
xor eax, eax
xor edi, edi
mov esi, dword [esp + 0x90]
mov ebx, eax
mov eax, dword [esp + 0x84]
jmp 0x47cb1f
mov eax, esi
mov esi, dword [esp + 0x90]
mov edx, edi
xor ebx, ebx
xor edi, edi
jmp 0x47cb1f
xor ebx, ebx
xor edi, edi
lea esi, [edx - 1]
cmp esi, 0x16c
ja 0x47cee7
test ebx, ebx
jne 0x47cb79
mov dword [esp + 0xe0], ecx
mov ebx, eax
mov eax, 0x84210843
mov edi, edx
imul esi
lea edx, [edx + edi - 1]
sar edx, 4
lea esi, [edx + 1]
mov eax, ebp
lea ebp, [0x9eaa60]
lea ecx, [ebp + edx*4 + 4]
cmp dword [ecx], edi
jge 0x47cb61
lea esi, [edx + 2]
mov ecx, dword [ebp + esi*4 - 4]
sub edi, ecx
mov eax, ebx
mov ecx, dword [esp + 0xe0]
mov ebp, dword [esp + 0x40c]
mov ebx, esi
mov edx, dword [esp + 0xbc]
test edx, edx
jl 0x47cd30
cmp ebx, edx
je 0x47cd30
nop
lea eax, [esp + 0x218]
mov dword [esp], eax
mov eax, dword [esp + 0x458]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x45c]
mov dword [esp + 8], eax
call fcn.0044b420
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp], 0
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.0044b280
nop
mov eax, dword [esp + 0xc]
mov dword [esp + 0x38c], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x4c], ecx
lea edx, [esp + 0x1f8]
mov dword [esp], edx
mov edx, dword [esp + 0x40c]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x90]
mov dword [esp + 8], edx
call fcn.0044b420
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp], 0
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.0044b280
mov eax, dword [esp + 0xc]
mov dword [esp + 0x388], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x48], ecx
lea edx, [0x69df80]
mov dword [esp], edx
call fcn.0040af90
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x454]
mov dword [edi + 4], eax
mov eax, dword [0xa43e50]
test eax, eax
jne 0x47cc6b
mov ecx, dword [esp + 0x450]
mov dword [edi], ecx
jmp 0x47cc77
mov eax, dword [esp + 0x450]
call fcn.0045f670
mov ecx, dword [esp + 0x4c]
mov dword [edi + 0xc], ecx
mov ecx, dword [0xa43e50]
test ecx, ecx
jne 0x47cc94
mov ecx, dword [esp + 0x38c]
mov dword [edi + 8], ecx
jmp 0x47cca9
lea ecx, [edi + 8]
mov eax, dword [esp + 0x38c]
mov edx, edi
mov edi, ecx
call fcn.0045f670
mov edi, edx
mov dword [edi + 0x14], 0
mov dword [edi + 0x10], 0
mov ecx, dword [esp + 0x48]
mov dword [edi + 0x1c], ecx
mov ecx, dword [0xa43e50]
test ecx, ecx
jne 0x47ccd4
mov ecx, dword [esp + 0x388]
mov dword [edi + 0x18], ecx
jmp 0x47cce9
lea ecx, [edi + 0x18]
mov eax, dword [esp + 0x388]
mov edx, edi
mov edi, ecx
call fcn.0045f670
mov edi, edx
mov dword [esp + 0x3c0], edi
mov dword [edi + 0x24], 0x22
lea ecx, [0x6c4390]
mov dword [edi + 0x20], ecx
xor eax, eax
lea edi, [esp + 0x468]
call fcn.0045f76b
lea ecx, [0x8957e0]
mov dword [esp + 0x47c], ecx
mov ecx, dword [esp + 0x3c0]
mov dword [esp + 0x480], ecx
add esp, 0x44c
ret
mov edx, dword [esp + 0xe8]
test edx, edx
jl 0x47d0b2
cmp edx, edi
je 0x47d0b2
nop
lea eax, [esp + 0x1d8]
mov dword [esp], eax
mov eax, dword [esp + 0x458]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x45c]
mov dword [esp + 8], eax
call fcn.0044b420
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp], 0
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.0044b280
nop
mov eax, dword [esp + 0xc]
mov dword [esp + 0x384], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x44], ecx
lea edx, [esp + 0x1b8]
mov dword [esp], edx
mov edx, dword [esp + 0x40c]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x90]
mov dword [esp + 8], edx
call fcn.0044b420
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp], 0
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.0044b280
mov eax, dword [esp + 0xc]
mov dword [esp + 0x380], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x40], ecx
lea edx, [0x69df80]
mov dword [esp], edx
call fcn.0040af90
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x454]
mov dword [edi + 4], eax
mov eax, dword [0xa43e50]
test eax, eax
jne 0x47ce22
mov ecx, dword [esp + 0x450]
mov dword [edi], ecx
jmp 0x47ce2e
mov eax, dword [esp + 0x450]
call fcn.0045f670
mov ecx, dword [esp + 0x44]
mov dword [edi + 0xc], ecx
mov ecx, dword [0xa43e50]
test ecx, ecx
jne 0x47ce4b
mov ecx, dword [esp + 0x384]
mov dword [edi + 8], ecx
jmp 0x47ce60
lea ecx, [edi + 8]
mov eax, dword [esp + 0x384]
mov edx, edi
mov edi, ecx
call fcn.0045f670
mov edi, edx
mov dword [edi + 0x14], 0
mov dword [edi + 0x10], 0
mov ecx, dword [esp + 0x40]
mov dword [edi + 0x1c], ecx
mov ecx, dword [0xa43e50]
test ecx, ecx
jne 0x47ce8b
mov ecx, dword [esp + 0x380]
mov dword [edi + 0x18], ecx
jmp 0x47cea0
lea ecx, [edi + 0x18]
mov eax, dword [esp + 0x380]
mov edx, edi
mov edi, ecx
call fcn.0045f670
mov edi, edx
mov dword [esp + 0x3bc], edi
mov dword [edi + 0x24], 0x20
lea ecx, [0x6c3389]
mov dword [edi + 0x20], ecx
xor eax, eax
lea edi, [esp + 0x468]
call fcn.0045f76b
lea ecx, [0x8957e0]
mov dword [esp + 0x47c], ecx
mov ecx, dword [esp + 0x3bc]
mov dword [esp + 0x480], ecx
add esp, 0x44c
ret
nop
lea eax, [esp + 0x258]
mov dword [esp], eax
mov eax, dword [esp + 0x458]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x45c]
mov dword [esp + 8], eax
call fcn.0044b420
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp], 0
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.0044b280
nop
mov eax, dword [esp + 0xc]
mov dword [esp + 0x394], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x54], ecx
lea edx, [esp + 0x238]
mov dword [esp], edx
mov edx, dword [esp + 0x40c]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x90]
mov dword [esp + 8], edx
call fcn.0044b420
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp], 0
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.0044b280
mov eax, dword [esp + 0xc]
mov dword [esp + 0x390], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x50], ecx
lea edx, [0x69df80]
mov dword [esp], edx
call fcn.0040af90
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x454]
mov dword [edi + 4], eax
mov eax, dword [0xa43e50]
test eax, eax
jne 0x47cfc2
mov ecx, dword [esp + 0x450]
mov dword [edi], ecx
jmp 0x47cfce
mov eax, dword [esp + 0x450]
call fcn.0045f670
mov ecx, dword [esp + 0x54]
mov dword [edi + 0xc], ecx
mov ecx, dword [0xa43e50]
test ecx, ecx
jne 0x47cfeb
mov ecx, dword [esp + 0x394]
mov dword [edi + 8], ecx
jmp 0x47d000
lea ecx, [edi + 8]
mov eax, dword [esp + 0x394]
mov edx, edi
mov edi, ecx
call fcn.0045f670
mov edi, edx
mov dword [edi + 0x14], 0
mov dword [edi + 0x10], 0
mov ecx, dword [esp + 0x50]
mov dword [edi + 0x1c], ecx
mov ecx, dword [0xa43e50]
test ecx, ecx
jne 0x47d02b
mov ecx, dword [esp + 0x390]
mov dword [edi + 0x18], ecx
jmp 0x47d040
lea ecx, [edi + 0x18]
mov eax, dword [esp + 0x390]
mov edx, edi
mov edi, ecx
call fcn.0045f670
mov edi, edx
mov dword [esp + 0x3c4], edi
mov dword [edi + 0x24], 0x1a
lea ecx, [0x6c02af]
mov dword [edi + 0x20], ecx
xor eax, eax
lea edi, [esp + 0x468]
call fcn.0045f76b
lea ecx, [0x8957e0]
mov dword [esp + 0x47c], ecx
mov ecx, dword [esp + 0x3c4]
mov dword [esp + 0x480], ecx
add esp, 0x44c
ret
mov edx, dword [esp + 0xbc]
test edx, edx
jge 0x47d097
mov edx, 1
mov ebx, dword [esp + 0xe8]
test ebx, ebx
jge 0x47d0a7
mov ebx, 1
mov eax, dword [esp + 0x84]
mov edi, ebx
mov ebx, edx
cmp edi, 1
jl 0x47d11b
cmp ebx, 2
jne 0x47d106
test eax, 3
jne 0x47d106
mov edx, 0x51eb851f
imul edx
mov dword [esp + 0xfc], edx
mov esi, dword [esp + 0x84]
mov eax, esi
sar esi, 0x1f
sar edx, 5
sub edx, esi
imul edx, edx, 0x64
cmp eax, edx
jne 0x47d0ff
mov edx, dword [esp + 0xfc]
sar edx, 7
sub edx, esi
imul edx, edx, 0x190
cmp eax, edx
jne 0x47d106
mov esi, 0x1d
jmp 0x47d113
lea edx, [0x9eaa60]
mov esi, dword [edx + ebx*4]
sub esi, dword [edx + ebx*4 - 4]
cmp esi, edi
jge 0x47d2bb
nop
lea eax, [esp + 0x198]
mov dword [esp], eax
mov eax, dword [esp + 0x458]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x45c]
mov dword [esp + 8], eax
call fcn.0044b420
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp], 0
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.0044b280
nop
mov eax, dword [esp + 0xc]
mov dword [esp + 0x37c], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x3c], ecx
lea edx, [esp + 0x178]
mov dword [esp], edx
mov edx, dword [esp + 0x40c]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x90]
mov dword [esp + 8], edx
call fcn.0044b420
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp], 0
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.0044b280
mov eax, dword [esp + 0xc]
mov dword [esp + 0x378], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x38], ecx
lea edx, [0x69df80]
mov dword [esp], edx
call fcn.0040af90
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x454]
mov dword [edi + 4], eax
mov eax, dword [0xa43e50]
test eax, eax
jne 0x47d1f6
mov ecx, dword [esp + 0x450]
mov dword [edi], ecx
jmp 0x47d202
mov eax, dword [esp + 0x450]
call fcn.0045f670
mov ecx, dword [esp + 0x3c]
mov dword [edi + 0xc], ecx
mov ecx, dword [0xa43e50]
test ecx, ecx
jne 0x47d21f
mov ecx, dword [esp + 0x37c]
mov dword [edi + 8], ecx
jmp 0x47d234
lea ecx, [edi + 8]
mov eax, dword [esp + 0x37c]
mov edx, edi
mov edi, ecx
call fcn.0045f670
mov edi, edx
mov dword [edi + 0x14], 0
mov dword [edi + 0x10], 0
mov ecx, dword [esp + 0x38]
mov dword [edi + 0x1c], ecx
mov ecx, dword [0xa43e50]
test ecx, ecx
jne 0x47d25f
mov ecx, dword [esp + 0x378]
mov dword [edi + 0x18], ecx
jmp 0x47d274
lea ecx, [edi + 0x18]
mov eax, dword [esp + 0x378]
mov edx, edi
mov edi, ecx
call fcn.0045f670
mov edi, edx
mov dword [esp + 0x3b8], edi
mov dword [edi + 0x24], 0x12
lea ecx, [0x6bbbea]
mov dword [edi + 0x20], ecx
xor eax, eax
lea edi, [esp + 0x468]
call fcn.0045f76b
lea ecx, [0x8957e0]
mov dword [esp + 0x47c], ecx
mov ecx, dword [esp + 0x3b8]
mov dword [esp + 0x480], ecx
add esp, 0x44c
ret
mov edx, dword [esp + 0x3dc]
test edx, edx
jne 0x47d948
mov edx, dword [esp + 0x7c]
cmp edx, 0xffffffff
jne 0x47d666
mov edx, dword [esp + 0x80]
test edx, edx
je 0x47d5e6
mov edx, dword [0xa16f14]
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], edi
mov dword [esp + 0xc], ecx
mov eax, dword [esp + 0xc4]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], edx
call fcn.00481710
lea edi, [esp + 0x410]
lea esi, [esp + 0x20]
call fcn.0045fc4e
mov eax, dword [esp + 0x410]
mov ecx, dword [esp + 0x414]
test ecx, 0x80000000
je 0x47d36c
shl ecx, 1
mov edx, eax
shr eax, 0x1f
or eax, ecx
shl edx, 1
mov ecx, eax
shl eax, 1
shr edx, 0x1f
or eax, edx
shr ecx, 0x1f
add eax, 0xd7b17f80
adc ecx, 0xd
jmp 0x47d37a
mov eax, dword [esp + 0x418]
mov ecx, dword [esp + 0x41c]
add eax, 0x886e0900
adc ecx, 0xfffffff1
mov edx, dword [esp + 0x464]
mov dword [esp], edx
mov ebx, dword [esp + 0x3d8]
mov dword [esp + 4], ebx
mov ebp, dword [esp + 0x80]
mov dword [esp + 8], ebp
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], eax
call fcn.004848a0
mov eax, dword [esp + 0x14]
movzx ecx, byte [esp + 0x18]
test cl, cl
jne 0x47d519
mov ecx, dword [esp + 0x80]
cmp ecx, 3
jle 0x47d416
mov edx, dword [esp + 0x3d8]
cmp word [edx], 0x4d47
jne 0x47d41d
cmp byte [edx + 2], 0x54
jne 0x47d41d
lea eax, [0x895208]
mov dword [esp], eax
lea eax, [edx + 3]
mov dword [esp + 4], eax
lea eax, [ecx - 3]
mov dword [esp + 8], eax
call fcn.004863c0
mov eax, dword [esp + 0xc]
imul eax, eax, 0xe10
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x3d8]
jmp 0x47d41d
mov edx, dword [esp + 0x3d8]
mov dword [esp + 0xac], eax
nop
lea ebx, [esp + 0x138]
mov dword [esp], ebx
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call fcn.0044b420
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp], 0
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.0044b280
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov eax, dword [esp + 0xac]
mov dword [esp + 8], eax
call fcn.00482590
mov eax, dword [esp + 0xc]
lea ecx, [0xa1a220]
cmp eax, ecx
jne 0x47d487
xor eax, eax
nop
mov ecx, dword [esp + 0x410]
mov edx, dword [esp + 0x414]
test edx, 0x80000000
je 0x47d4e2
shl edx, 1
mov ebx, ecx
shr ecx, 0x1f
or ecx, edx
shl ebx, 1
mov edx, ecx
shl ecx, 1
shr ebx, 0x1f
or ecx, ebx
shr edx, 0x1f
add ecx, 0xd7b17f80
adc edx, 0xd
mov dword [esp + 0x418], ecx
mov dword [esp + 0x41c], edx
and dword [esp + 0x410], 0x3fffffff
mov dword [esp + 0x414], 0
mov dword [esp + 0x420], eax
lea edi, [esp + 0x468]
lea esi, [esp + 0x410]
call fcn.0045fc4e
mov dword [esp + 0x47c], 0
mov dword [esp + 0x480], 0
add esp, 0x44c
ret
mov ecx, eax
sar eax, 0x1f
xor edx, edx
sub edx, ecx
mov ecx, 0
sbb ecx, eax
lea eax, [esp + 0x410]
mov dword [esp], eax
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
call fcn.0047f100
nop
mov eax, dword [esp + 0x464]
lea ecx, [0xa1a220]
cmp eax, ecx
jne 0x47d554
xor eax, eax
nop
mov ecx, dword [esp + 0x410]
mov edx, dword [esp + 0x414]
test edx, 0x80000000
je 0x47d5af
shl edx, 1
mov ebx, ecx
shr ecx, 0x1f
or ecx, edx
shl ebx, 1
mov edx, ecx
shl ecx, 1
shr ebx, 0x1f
or ecx, ebx
shr edx, 0x1f
add ecx, 0xd7b17f80
adc edx, 0xd
mov dword [esp + 0x418], ecx
mov dword [esp + 0x41c], edx
and dword [esp + 0x410], 0x3fffffff
mov dword [esp + 0x414], 0
mov dword [esp + 0x420], eax
lea edi, [esp + 0x468]
lea esi, [esp + 0x410]
call fcn.0045fc4e
mov dword [esp + 0x47c], 0
mov dword [esp + 0x480], 0
add esp, 0x44c
ret
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], edi
mov dword [esp + 0xc], ecx
mov eax, dword [esp + 0xc4]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x460]
mov dword [esp + 0x1c], eax
call fcn.00481710
lea edi, [esp + 0x438]
lea esi, [esp + 0x20]
call fcn.0045fc4e
lea edi, [esp + 0x468]
lea esi, [esp + 0x438]
call fcn.0045fc4e
mov dword [esp + 0x47c], 0
mov dword [esp + 0x480], 0
add esp, 0x44c
ret
mov edx, dword [0xa16f14]
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], edi
mov dword [esp + 0xc], ecx
mov eax, dword [esp + 0xc4]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], edx
call fcn.00481710
mov eax, dword [esp + 0x7c]
mov ecx, eax
sar eax, 0x1f
xor edx, edx
sub edx, ecx
mov ebx, 0
sbb ebx, eax
lea edi, [esp + 0x424]
lea esi, [esp + 0x20]
call fcn.0045fc4e
lea eax, [esp + 0x424]
mov dword [esp], eax
mov dword [esp + 8], ebx
mov dword [esp + 4], edx
call fcn.0047f100
mov eax, dword [esp + 0x424]
mov ecx, dword [esp + 0x428]
test ecx, 0x80000000
je 0x47d717
shl ecx, 1
mov edx, eax
shr eax, 0x1f
or eax, ecx
shl edx, 1
mov ecx, eax
shl eax, 1
shr edx, 0x1f
or eax, edx
shr ecx, 0x1f
add eax, 0xd7b17f80
adc ecx, 0xd
jmp 0x47d725
mov eax, dword [esp + 0x42c]
mov ecx, dword [esp + 0x430]
add eax, 0x886e0900
adc ecx, 0xfffffff1
mov edx, dword [esp + 0x464]
mov dword [esp], edx
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
call fcn.00482760
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x7c]
cmp dword [esp + 0x14], edx
jne 0x47d799
mov ebx, dword [esp + 0x80]
test ebx, ebx
jne 0x47d768
mov eax, 1
jmp 0x47d7a2
cmp ebx, eax
je 0x47d770
xor eax, eax
jmp 0x47d7a2
mov dword [esp], ecx
mov ecx, dword [esp + 0x3d8]
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.00402870
movzx eax, byte [esp + 0xc]
mov edx, dword [esp + 0x7c]
mov ebx, dword [esp + 0x80]
jmp 0x47d7a2
mov ebx, dword [esp + 0x80]
xor eax, eax
test al, al
je 0x47d850
nop
mov eax, dword [esp + 0x464]
lea ecx, [0xa1a220]
cmp eax, ecx
jne 0x47d7be
xor eax, eax
nop
mov ecx, dword [esp + 0x424]
mov edx, dword [esp + 0x428]
test edx, 0x80000000
je 0x47d819
shl edx, 1
mov ebx, ecx
shr ecx, 0x1f
or ecx, edx
shl ebx, 1
mov edx, ecx
shl ecx, 1
shr ebx, 0x1f
or ecx, ebx
shr edx, 0x1f
add ecx, 0xd7b17f80
adc edx, 0xd
mov dword [esp + 0x42c], ecx
mov dword [esp + 0x430], edx
and dword [esp + 0x424], 0x3fffffff
mov dword [esp + 0x428], 0
mov dword [esp + 0x434], eax
lea edi, [esp + 0x468]
lea esi, [esp + 0x424]
call fcn.0045fc4e
mov dword [esp + 0x47c], 0
mov dword [esp + 0x480], 0
add esp, 0x44c
ret
lea eax, [esp + 0x158]
mov dword [esp], eax
mov eax, dword [esp + 0x3d8]
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
call fcn.0044b420
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp], 0
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.0044b280
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov eax, dword [esp + 0x7c]
mov dword [esp + 8], eax
call fcn.00482590
mov eax, dword [esp + 0xc]
lea ecx, [0xa1a220]
cmp eax, ecx
jne 0x47d8b6
xor eax, eax
nop
mov ecx, dword [esp + 0x424]
mov edx, dword [esp + 0x428]
test edx, 0x80000000
je 0x47d911
shl edx, 1
mov ebx, ecx
shr ecx, 0x1f
or ecx, edx
shl ebx, 1
mov edx, ecx
shl ecx, 1
shr ebx, 0x1f
or ecx, ebx
shr edx, 0x1f
add ecx, 0xd7b17f80
adc edx, 0xd
mov dword [esp + 0x42c], ecx
mov dword [esp + 0x430], edx
and dword [esp + 0x424], 0x3fffffff
mov dword [esp + 0x428], 0
mov dword [esp + 0x434], eax
lea edi, [esp + 0x468]
lea esi, [esp + 0x424]
call fcn.0045fc4e
mov dword [esp + 0x47c], 0
mov dword [esp + 0x480], 0
add esp, 0x44c
ret
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], edi
mov dword [esp + 0xc], ecx
mov eax, dword [esp + 0xc4]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], edx
call fcn.00481710
lea edi, [esp + 0x438]
lea esi, [esp + 0x20]
call fcn.0045fc4e
lea edi, [esp + 0x468]
lea esi, [esp + 0x438]
call fcn.0045fc4e
mov dword [esp + 0x47c], 0
mov dword [esp + 0x480], 0
add esp, 0x44c
ret
mov dword [esp], ebp
mov dword [esp + 4], esi
call fcn.0047af60
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp], 0
lea edx, [0x6b9fe6]
mov dword [esp + 4], edx
mov dword [esp + 8], 0xe
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
call fcn.0044afd0
nop
mov eax, dword [esp + 0x14]
mov dword [esp + 0x404], eax
mov ecx, dword [esp + 0x18]
mov dword [esp + 0xcc], ecx
lea edx, [esp + 0x318]
mov dword [esp], edx
mov edx, dword [esp + 0x458]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x45c]
mov dword [esp + 8], edx
call fcn.0044b420
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp], 0
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.0044b280
nop
mov eax, dword [esp + 0xc]
mov dword [esp + 0x3ac], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x6c], ecx
lea edx, [esp + 0x2f8]
mov dword [esp], edx
mov edx, dword [esp + 0x40c]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x90]
mov dword [esp + 8], edx
call fcn.0044b420
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp], 0
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.0044b280
mov eax, dword [esp + 0xc]
mov dword [esp + 0x3a8], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x68], ecx
lea edx, [0x69df80]
mov dword [esp], edx
call fcn.0040af90
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x454]
mov dword [edi + 4], eax
mov eax, dword [0xa43e50]
test eax, eax
jne 0x47daec
mov ecx, dword [esp + 0x450]
mov dword [edi], ecx
jmp 0x47daf8
mov eax, dword [esp + 0x450]
call fcn.0045f670
mov ecx, dword [esp + 0x6c]
mov dword [edi + 0xc], ecx
mov ecx, dword [0xa43e50]
test ecx, ecx
jne 0x47db15
mov ecx, dword [esp + 0x3ac]
mov dword [edi + 8], ecx
jmp 0x47db2a
lea ecx, [edi + 8]
mov eax, dword [esp + 0x3ac]
mov edx, edi
mov edi, ecx
call fcn.0045f670
mov edi, edx
mov dword [edi + 0x14], 0
mov dword [edi + 0x10], 0
mov ecx, dword [esp + 0x68]
mov dword [edi + 0x1c], ecx
mov ecx, dword [0xa43e50]
test ecx, ecx
jne 0x47db55
mov ecx, dword [esp + 0x3a8]
mov dword [edi + 0x18], ecx
jmp 0x47db6a
lea ecx, [edi + 0x18]
mov eax, dword [esp + 0x3a8]
mov edx, edi
mov edi, ecx
call fcn.0045f670
mov edi, edx
mov ecx, dword [esp + 0xcc]
mov dword [edi + 0x24], ecx
mov ecx, dword [0xa43e50]
test ecx, ecx
jne 0x47db8a
mov ecx, dword [esp + 0x404]
mov dword [edi + 0x20], ecx
jmp 0x47db9f
lea ecx, [edi + 0x20]
mov eax, dword [esp + 0x404]
mov edx, edi
mov edi, ecx
call fcn.0045f670
mov edi, edx
mov dword [esp + 0x3d0], edi
xor eax, eax
lea edi, [esp + 0x468]
call fcn.0045f76b
lea ecx, [0x8957e0]
mov dword [esp + 0x47c], ecx
mov ecx, dword [esp + 0x3d0]
mov dword [esp + 0x480], ecx
add esp, 0x44c
ret
nop
lea eax, [esp + 0x358]
mov dword [esp], eax
mov eax, dword [esp + 0x458]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x45c]
mov dword [esp + 8], eax
call fcn.0044b420
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp], 0
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.0044b280
nop
mov eax, dword [esp + 0xc]
mov dword [esp + 0x3b4], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x74], ecx
lea edx, [esp + 0x338]
mov dword [esp], edx
mov edx, dword [esp + 0x40c]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x90]
mov dword [esp + 8], edx
call fcn.0044b420
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp], 0
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.0044b280
mov eax, dword [esp + 0xc]
mov dword [esp + 0x3b0], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x70], ecx
lea edx, [0x69df80]
mov dword [esp], edx
call fcn.0040af90
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x454]
mov dword [edi + 4], eax
mov eax, dword [0xa43e50]
test eax, eax
jne 0x47dcb1
mov ecx, dword [esp + 0x450]
mov dword [edi], ecx
jmp 0x47dcbd
mov eax, dword [esp + 0x450]
call fcn.0045f670
mov ecx, dword [esp + 0x74]
mov dword [edi + 0xc], ecx
mov ecx, dword [0xa43e50]
test ecx, ecx
jne 0x47dcda
mov ecx, dword [esp + 0x3b4]
mov dword [edi + 8], ecx
jmp 0x47dcef
lea ecx, [edi + 8]
mov eax, dword [esp + 0x3b4]
mov edx, edi
mov edi, ecx
call fcn.0045f670
mov edi, edx
mov ecx, dword [esp + 0xa8]
mov dword [edi + 0x14], ecx
mov ecx, dword [0xa43e50]
test ecx, ecx
jne 0x47dd0f
mov ecx, dword [esp + 0x3f8]
mov dword [edi + 0x10], ecx
jmp 0x47dd24
lea ecx, [edi + 0x10]
mov eax, dword [esp + 0x3f8]
mov edx, edi
mov edi, ecx
call fcn.0045f670
mov edi, edx
mov ecx, dword [esp + 0x70]
mov dword [edi + 0x1c], ecx
mov ecx, dword [0xa43e50]
test ecx, ecx
jne 0x47dd41
mov ecx, dword [esp + 0x3b0]
mov dword [edi + 0x18], ecx
jmp 0x47dd56
lea ecx, [edi + 0x18]
mov eax, dword [esp + 0x3b0]
mov edx, edi
mov edi, ecx
call fcn.0045f670
mov edi, edx
mov dword [esp + 0x3d4], edi
mov dword [edi + 0x24], 0
mov dword [edi + 0x20], 0
xor eax, eax
lea edi, [esp + 0x468]
call fcn.0045f76b
lea ecx, [0x8957e0]
mov dword [esp + 0x47c], ecx
mov ecx, dword [esp + 0x3d4]
mov dword [esp + 0x480], ecx
add esp, 0x44c
ret
nop
lea eax, [esp + 0x298]
mov dword [esp], eax
mov eax, dword [esp + 0x458]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x45c]
mov dword [esp + 8], eax
call fcn.0044b420
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp], 0
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.0044b280
nop
mov eax, dword [esp + 0xc]
mov dword [esp + 0x39c], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x5c], ecx
lea edx, [esp + 0x278]
mov dword [esp], edx
mov edx, dword [esp + 0x40c]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x90]
mov dword [esp + 8], edx
call fcn.0044b420
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp], 0
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.0044b280
mov eax, dword [esp + 0xc]
mov dword [esp + 0x398], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x58], ecx
lea edx, [0x69df80]
mov dword [esp], edx
call fcn.0040af90
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x454]
mov dword [edi + 4], eax
mov eax, dword [0xa43e50]
test eax, eax
jne 0x47de76
mov ecx, dword [esp + 0x450]
mov dword [edi], ecx
jmp 0x47de82
mov eax, dword [esp + 0x450]
call fcn.0045f670
mov ecx, dword [esp + 0x5c]
mov dword [edi + 0xc], ecx
mov ecx, dword [0xa43e50]
test ecx, ecx
jne 0x47de9f
mov ecx, dword [esp + 0x39c]
mov dword [edi + 8], ecx
jmp 0x47deb4
lea ecx, [edi + 8]
mov eax, dword [esp + 0x39c]
mov edx, edi
mov edi, ecx
call fcn.0045f670
mov edi, edx
mov ecx, dword [esp + 0xfc]
mov dword [edi + 0x14], ecx
mov ecx, dword [0xa43e50]
test ecx, ecx
jne 0x47ded4
mov ecx, dword [esp + 0x3e8]
mov dword [edi + 0x10], ecx
jmp 0x47dee9
lea ecx, [edi + 0x10]
mov eax, dword [esp + 0x3e8]
mov edx, edi
mov edi, ecx
call fcn.0045f670
mov edi, edx
mov ecx, dword [esp + 0x58]
mov dword [edi + 0x1c], ecx
mov ecx, dword [0xa43e50]
test ecx, ecx
jne 0x47df06
mov ecx, dword [esp + 0x398]
mov dword [edi + 0x18], ecx
jmp 0x47df1b
lea ecx, [edi + 0x18]
mov eax, dword [esp + 0x398]
mov edx, edi
mov edi, ecx
call fcn.0045f670
mov edi, edx
mov dword [esp + 0x3c8], edi
mov dword [edi + 0x24], 0
mov dword [edi + 0x20], 0
xor eax, eax
lea edi, [esp + 0x468]
call fcn.0045f76b
lea ecx, [0x8957e0]
mov dword [esp + 0x47c], ecx
mov ecx, dword [esp + 0x3c8]
mov dword [esp + 0x480], ecx
add esp, 0x44c
ret
mov dword [esp + 0x8c], esi
mov dword [esp + 0x3e0], ebp
mov dword [esp], 0
lea ecx, [0x6b6d75]
mov dword [esp + 4], ecx
mov dword [esp + 8], 2
mov ecx, dword [esp + 0x3f4]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
lea eax, [0x6b9941]
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], 0xd
call fcn.0044b070
nop
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x400], eax
mov ecx, dword [esp + 0x20]
mov dword [esp + 0xc8], ecx
lea edx, [esp + 0x2d8]
mov dword [esp], edx
mov edx, dword [esp + 0x458]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x45c]
mov dword [esp + 8], edx
call fcn.0044b420
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp], 0
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.0044b280
nop
mov eax, dword [esp + 0xc]
mov dword [esp + 0x3a4], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x64], ecx
lea edx, [esp + 0x2b8]
mov dword [esp], edx
mov edx, dword [esp + 0x3e0]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x8c]
mov dword [esp + 8], edx
call fcn.0044b420
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp], 0
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.0044b280
mov eax, dword [esp + 0xc]
mov dword [esp + 0x3a0], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x60], ecx
lea edx, [0x69df80]
mov dword [esp], edx
call fcn.0040af90
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x454]
mov dword [edi + 4], eax
mov eax, dword [0xa43e50]
test eax, eax
jne 0x47e09e
mov ecx, dword [esp + 0x450]
mov dword [edi], ecx
jmp 0x47e0aa
mov eax, dword [esp + 0x450]
call fcn.0045f670
mov ecx, dword [esp + 0x64]
mov dword [edi + 0xc], ecx
mov ecx, dword [0xa43e50]
test ecx, ecx
jne 0x47e0c7
mov ecx, dword [esp + 0x3a4]
mov dword [edi + 8], ecx
jmp 0x47e0dc
lea ecx, [edi + 8]
mov eax, dword [esp + 0x3a4]
mov edx, edi
mov edi, ecx
call fcn.0045f670
mov edi, edx
mov ecx, dword [esp + 0xfc]
mov dword [edi + 0x14], ecx
mov ecx, dword [0xa43e50]
test ecx, ecx
jne 0x47e0fc
mov ecx, dword [esp + 0x3e8]
mov dword [edi + 0x10], ecx
jmp 0x47e111
lea ecx, [edi + 0x10]
mov eax, dword [esp + 0x3e8]
mov edx, edi
mov edi, ecx
call fcn.0045f670
mov edi, edx
mov ecx, dword [esp + 0x60]
mov dword [edi + 0x1c], ecx
mov ecx, dword [0xa43e50]
test ecx, ecx
jne 0x47e12e
mov ecx, dword [esp + 0x3a0]
mov dword [edi + 0x18], ecx
jmp 0x47e143
lea ecx, [edi + 0x18]
mov eax, dword [esp + 0x3a0]
mov edx, edi
mov edi, ecx
call fcn.0045f670
mov edi, edx
mov ecx, dword [esp + 0xc8]
mov dword [edi + 0x24], ecx
mov ecx, dword [0xa43e50]
test ecx, ecx
jne 0x47e163
mov ecx, dword [esp + 0x400]
mov dword [edi + 0x20], ecx
jmp 0x47e178
lea ecx, [edi + 0x20]
mov eax, dword [esp + 0x400]
mov edx, edi
mov edi, ecx
call fcn.0045f670
mov edi, edx
mov dword [esp + 0x3cc], edi
xor eax, eax
lea edi, [esp + 0x468]
call fcn.0045f76b
lea ecx, [0x8957e0]
mov dword [esp + 0x47c], ecx
mov ecx, dword [esp + 0x3cc]
mov dword [esp + 0x480], ecx
add esp, 0x44c
ret
mov dword [esp + 0xa4], ebp
mov dword [esp + 0x3f4], esi
mov esi, edx
mov ebp, ecx
mov dword [esp + 0xb0], edi
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x3e8]
mov ecx, dword [esp + 0x94]
mov edx, dword [esp + 0x90]
mov edi, ebx
mov ebx, dword [esp + 0xfc]
jmp 0x47ca1f
inc edx
cmp edx, eax
jge 0x47e203
movzx ebx, byte [edx + ecx]
add ebx, 0xffffffd0
cmp bl, 9
jbe 0x47e1f2
mov dword [esp + 0xb8], edx
lea ebx, [0x895210]
mov dword [esp], ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
call fcn.00486290
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 0xa0]
mov eax, dword [esp + 0xb8]
sub edx, eax
mov ecx, edx
neg edx
sar edx, 0x1f
and eax, edx
mov edx, dword [esp + 0x3f0]
add eax, edx
mov esi, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov edx, ecx
mov ecx, eax
mov eax, dword [esp + 0xf4]
jmp 0x47e1af
inc eax
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0x3e8]
mov eax, dword [esp + 0xd8]
cmp eax, 2
jge 0x47e2b2
cmp edx, 0x10a
jne 0x47e266
test esi, esi
je 0x47e266
cmp byte [ebp], 0x20
jne 0x47e266
dec esi
mov dword [esp + 0xf8], esi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and esi, 1
add ebp, esi
mov esi, dword [esp + 0xf8]
jmp 0x47e266
xor eax, eax
xor eax, eax
mov dword [esp + 0xd0], eax
xor eax, eax
jmp 0x47e2e2
inc ebx
lea eax, [eax + eax*4]
xchg edi, eax
movzx eax, al
xchg edi, eax
lea eax, [edi + eax*2]
mov edi, dword [esp + 0x90]
mov dword [esp + 0xd0], ebx
mov ebx, dword [esp + 0xfc]
mov ebx, dword [esp + 0xd0]
cmp ebx, 3
jge 0x47e30c
cmp ebx, esi
jge 0x47e308
movzx edi, byte [ebp + ebx]
add edi, 0xffffffd0
xchg edi, eax
cmp al, 9
xchg edi, eax
jbe 0x47e2c1
mov edi, dword [esp + 0x90]
test ebx, ebx
je 0x47e319
cmp edx, 0x10b
jne 0x47e323
cmp ebx, 3
je 0x47e323
mov edx, dword [0xa1d8d8]
xor eax, eax
jmp 0x47e338
sub esi, ebx
mov edx, esi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and esi, ebx
add ebp, esi
mov esi, edx
xor edx, edx
mov ebx, dword [esp + 0xfc]
mov edi, edx
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x3e8]
mov edx, dword [esp + 0x90]
jmp 0x47ca1f
mov eax, dword [esp + 0x3e8]
mov edx, edi
mov dword [esp + 0xd4], edx
lea edi, [edx + 1]
cmp esi, edi
jle 0x47e37f
movzx eax, byte [edx + ebp + 1]
add eax, 0xffffffd0
cmp al, 9
jbe 0x47e35b
mov dword [esp + 0xec], edi
lea eax, [0x895210]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
mov dword [esp + 0xc], edi
call fcn.00486290
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 0x90]
mov eax, dword [esp + 0xd4]
sub edx, eax
lea esi, [edx - 1]
mov eax, esi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
mov edx, dword [esp + 0xec]
and edx, esi
mov ebx, dword [esp + 0x40c]
lea ebp, [edx + ebx]
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov ebx, dword [esp + 0xfc]
mov dword [esp + 0xa4], esi
mov dword [esp + 0x3f4], edx
mov esi, eax
mov dword [esp + 0xb0], edi
mov eax, dword [esp + 0x3e8]
mov edx, dword [esp + 0x90]
mov edi, ecx
mov ecx, dword [esp + 0x94]
jmp 0x47ca1f
call fcn.0045e260
jmp fcn.0047b970