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

Disassembly:
mov ecx, dword [0xe11d80]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x3e4]
cmp eax, dword [ecx + 8]
jbe 0x51d034
sub esp, 0x464
lea edi, [esp + 0x480]
xor eax, eax
call fcn.0046992b
mov ecx, dword [esp + 0x46c]
mov edx, dword [esp + 0x468]
xor ebx, ebx
xor ebp, ebp
mov esi, 0xffffffff
xor edi, edi
mov ecx, 0xffffffff
mov dword [esp + 0xe8], ecx
mov ecx, 0xffffffff
mov dword [esp + 0x80], ecx
xor ecx, ecx
mov dword [esp + 0xb4], ecx
xor ecx, ecx
mov byte [esp + 0x36], cl
xor edx, edx
mov byte [esp + 0x37], dl
mov edx, 0xffffffff
mov dword [esp + 0xc0], edx
xor edx, edx
mov dword [esp + 0xc8], edx
xor edx, edx
mov dword [esp + 0xe0], edx
xor edx, edx
mov dword [esp + 0x3f4], edx
xor ebx, ebx
mov dword [esp + 0xa8], ebx
xor ebx, ebx
mov dword [esp + 0xa0], ebx
xor ebx, ebx
mov dword [esp + 0x40c], ebx
mov ebx, dword [esp + 0x474]
mov dword [esp + 0xfc], ebx
mov ebx, dword [esp + 0x470]
mov dword [esp + 0x424], ebx
mov ecx, dword [esp + 0x46c]
mov edx, dword [esp + 0x468]
xor ebx, ebx
jmp 0x51a674
mov edx, dword [esp + 0x3fc]
mov ebx, dword [esp + 0x88]
mov ebp, dword [esp + 0x84]
mov esi, dword [esp + 0x8c]
mov dword [esp + 0x3f4], eax
mov dword [esp + 0xfc], edi
mov dword [esp + 0x424], ecx
mov ecx, dword [esp + 0x98]
mov edi, dword [esp + 0x3f0]
mov dword [esp + 0xf8], ecx
mov dword [esp + 0x420], edx
mov dword [esp + 0x84], ebp
mov dword [esp + 0x3f0], edi
mov dword [esp + 0x88], ebx
mov dword [esp + 0x8c], esi
mov dword [esp], edx
mov dword [esp + 4], ecx
call fcn.00515d90
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0xf8]
mov edx, ecx
sub ecx, eax
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x10]
mov esi, dword [esp + 8]
cmp edx, ecx
jb 0x51d02e
mov edx, dword [esp + 0xc]
cmp edx, ecx
ja 0x51d027
mov dword [esp + 0x9c], ebp
mov dword [esp + 0xac], edx
mov dword [esp + 0xf8], ecx
mov dword [esp + 0x98], eax
mov dword [esp + 0x3fc], ebx
mov dword [esp + 0x410], esi
mov eax, dword [esp + 0x424]
mov dword [esp], eax
mov eax, dword [esp + 0xfc]
mov dword [esp + 4], eax
call fcn.0051a2a0
mov eax, dword [esp + 0xf8]
mov ecx, dword [esp + 0xac]
sub eax, ecx
mov edx, eax
neg eax
sar eax, 0x1f
and eax, ecx
mov ebx, dword [esp + 0x18]
mov ebp, dword [esp + 0x420]
add eax, ebp
mov ebp, dword [esp + 0x10]
mov dword [esp + 0x424], ebp
mov esi, dword [esp + 0x14]
mov dword [esp + 0x94], esi
test ebx, ebx
jne 0x51c7d8
mov edi, dword [esp + 0x9c]
test edi, edi
je 0x51b630
mov dword [esp + 0xfc], edx
mov dword [esp + 0x400], eax
mov ecx, edi
and edi, 0xffff
cmp edi, 0x106
jg 0x51af69
cmp edi, 0x23
jg 0x51ad09
cmp edi, 0x21
jg 0x51ac0b
cmp edi, 0x17
jne 0x51a885
mov dword [esp + 0xe4], ebx
cmp esi, 3
jl 0x51a7e1
cmp word [ebp], 0x5455
jne 0x51a7e1
cmp byte [ebp + 2], 0x43
jne 0x51a7e1
lea ecx, [esi - 3]
mov edi, ecx
neg ecx
sar ecx, 0x1f
and ecx, 3
mov eax, dword [0xdc30b8]
add ecx, ebp
jmp 0x51b614
mov dword [esp], ebp
mov dword [esp + 4], esi
call fcn.0051d040
movzx eax, byte [esp + 0xc]
test al, al
je 0x51a85a
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x94]
cmp ecx, edx
ja 0x51d022
mov esi, edx
sub esi, ecx
mov eax, esi
neg eax
sar eax, 0x1f
and eax, ecx
mov edi, dword [esp + 0x424]
lea ebp, [eax + edi]
mov edx, dword [esp + 0xfc]
mov eax, dword [esp + 0x3f4]
mov ebx, dword [esp + 0xe4]
mov dword [esp + 0x84], ecx
mov dword [esp + 0x3f0], edi
mov edi, esi
mov ecx, ebp
mov ebp, dword [esp + 0x3f0]
mov esi, dword [esp + 0x94]
jmp 0x51b614
mov ebx, dword [0xdc3bb8]
mov edx, dword [esp + 0xfc]
mov ebp, dword [esp + 0x424]
mov esi, dword [esp + 0x94]
mov eax, dword [esp + 0x3f4]
mov edi, esi
mov ecx, ebp
jmp 0x51b614
cmp edi, 0x18
jl 0x51b334
cmp ecx, 0x18
je 0x51a89d
cmp ecx, 0x1a
je 0x51a89d
cmp ecx, 0x1b
jne 0x51a8c6
test esi, esi
je 0x51a8c1
cmp byte [ebp], 0x5a
jne 0x51a8c1
lea ecx, [esi - 1]
mov edi, ecx
neg ecx
sar ecx, 0x1f
and ecx, 1
add ecx, ebp
mov eax, dword [0xdc30b8]
jmp 0x51b614
cmp ecx, 0x1b
je 0x51a8cb
cmp ecx, 0x20
jne 0x51a937
cmp esi, 6
jge 0x51a8e6
mov ebx, dword [0xdc3bb8]
mov eax, dword [esp + 0x3f4]
mov edi, esi
mov ecx, ebp
jmp 0x51b614
cmp byte [ebp + 3], 0x3a
je 0x51a902
mov ebx, dword [0xdc3bb8]
mov eax, dword [esp + 0x3f4]
mov edi, esi
mov ecx, ebp
jmp 0x51b614
lea ecx, [esi - 6]
mov ebx, ecx
neg ecx
sar ecx, 0x1f
and ecx, 6
lea edi, [ebp + 1]
lea eax, [ebp + 4]
add ecx, ebp
mov dword [esp + 0x120], eax
lea eax, [0x961d9e]
mov dword [esp + 0x404], eax
mov eax, dword [esp + 0x120]
jmp 0x51aaf2
cmp ecx, 0x1f
je 0x51a941
cmp ecx, 0x1a
jne 0x51a99b
cmp esi, 3
jge 0x51a95c
mov ebx, dword [0xdc3bb8]
mov eax, dword [esp + 0x3f4]
mov edi, esi
mov ecx, ebp
jmp 0x51b614
lea ecx, [esi - 3]
mov ebx, ecx
neg ecx
sar ecx, 0x1f
and ecx, 3
lea edi, [ebp + 1]
add ecx, ebp
mov dword [esp + 0x130], eax
lea eax, [0x961d9e]
mov dword [esp + 0x404], eax
lea eax, [0x961d9e]
mov dword [esp + 0x414], eax
mov eax, dword [esp + 0x130]
jmp 0x51aaeb
cmp ecx, 0x1c
je 0x51a9a5
cmp ecx, 0x21
jne 0x51aa21
cmp esi, 9
jge 0x51a9c0
mov ebx, dword [0xdc3bb8]
mov eax, dword [esp + 0x3f4]
mov edi, esi
mov ecx, ebp
jmp 0x51b614
cmp byte [ebp + 3], 0x3a
jne 0x51a9cc
cmp byte [ebp + 6], 0x3a
je 0x51a9e2
mov ebx, dword [0xdc3bb8]
mov eax, dword [esp + 0x3f4]
mov edi, esi
mov ecx, ebp
jmp 0x51b614
lea ecx, [esi - 9]
mov ebx, ecx
neg ecx
sar ecx, 0x1f
and ecx, 9
lea edi, [ebp + 1]
lea eax, [ebp + 4]
lea edx, [ebp + 7]
add ecx, ebp
mov dword [esp + 0x404], edx
mov edx, dword [esp + 0xfc]
mov dword [esp + 0x138], eax
mov eax, ecx
mov ecx, ebx
mov ebx, eax
mov eax, dword [esp + 0x138]
jmp 0x51aacd
cmp ecx, 0x19
je 0x51aa2b
cmp ecx, 0x1e
jne 0x51aa82
cmp esi, 7
jge 0x51aa46
mov ebx, dword [0xdc3bb8]
mov eax, dword [esp + 0x3f4]
mov edi, esi
mov ecx, ebp
jmp 0x51b614
lea ecx, [esi - 7]
mov ebx, ecx
neg ecx
sar ecx, 0x1f
and ecx, 7
lea edi, [ebp + 1]
lea eax, [ebp + 3]
lea edx, [ebp + 5]
add ecx, ebp
mov dword [esp + 0x404], edx
mov edx, dword [esp + 0xfc]
mov dword [esp + 0x148], eax
mov eax, ecx
mov ecx, ebx
mov ebx, eax
mov eax, dword [esp + 0x148]
jmp 0x51aacd
cmp esi, 5
jge 0x51aa9d
mov ebx, dword [0xdc3bb8]
mov eax, dword [esp + 0x3f4]
mov edi, esi
mov ecx, ebp
jmp 0x51b614
lea ecx, [esi - 5]
mov ebx, ecx
neg ebx
sar ebx, 0x1f
and ebx, 5
lea edi, [ebp + 1]
lea eax, [ebp + 3]
add ebx, ebp
mov dword [esp + 0x140], eax
lea eax, [0x961d9e]
mov dword [esp + 0x404], eax
mov eax, dword [esp + 0x140]
mov dword [esp + 0x414], eax
mov eax, dword [esp + 0x400]
mov dword [esp + 0x128], ecx
mov ecx, ebx
mov ebx, dword [esp + 0x128]
mov eax, dword [esp + 0x414]
mov dword [esp + 0x414], eax
mov dword [esp + 0x420], ecx
mov dword [esp + 0xf8], ebx
mov dword [esp], edi
mov dword [esp + 4], 2
mov byte [esp + 8], 1
call fcn.0051a190
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0xdc], ecx
test eax, eax
je 0x51ab33
xor edx, edx
jmp 0x51ab62
mov eax, dword [esp + 0x414]
mov dword [esp], eax
mov dword [esp + 4], 2
mov byte [esp + 8], 1
call fcn.0051a190
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x18]
mov edx, eax
mov eax, ecx
mov ecx, dword [esp + 0xdc]
test eax, eax
je 0x51ab6a
xor ebx, ebx
jmp 0x51aba7
mov dword [esp + 0xc4], edx
mov eax, dword [esp + 0x404]
mov dword [esp], eax
mov dword [esp + 4], 2
mov byte [esp + 8], 1
call fcn.0051a190
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0xc4]
mov ebx, eax
mov eax, ecx
mov ecx, dword [esp + 0xdc]
imul ecx, ecx, 0x3c
add ecx, edx
imul ecx, ecx, 0x3c
mov edx, dword [esp + 0x424]
movzx ebp, byte [edx]
add ecx, ebx
xchg ebp, eax
cmp al, 0x2b
xchg ebp, eax
je 0x51abd3
xchg ebp, eax
cmp al, 0x2d
xchg ebp, eax
jne 0x51abcd
neg ecx
jmp 0x51abd3
mov eax, dword [0xdc3bb8]
mov edx, dword [esp + 0xfc]
mov ebp, dword [esp + 0x424]
mov esi, dword [esp + 0x94]
mov ebx, eax
mov dword [esp + 0x80], ecx
mov edi, dword [esp + 0xf8]
mov ecx, dword [esp + 0x420]
mov eax, dword [esp + 0x3f4]
jmp 0x51b614
cmp edi, 0x22
jne 0x51acc9
sar ecx, 0x10
and ecx, 0xfff
lea ebx, [ecx + 1]
cmp esi, ebx
jge 0x51ac3a
mov ebx, dword [0xdc3bb8]
mov eax, dword [esp + 0x3f4]
mov edi, esi
mov ecx, ebp
jmp 0x51b614
mov dword [esp + 0x78], ecx
mov dword [esp + 0xb8], ebx
lea eax, [0xa2ca68]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
mov dword [esp + 0xc], ebx
call fcn.00526350
mov eax, dword [esp + 0x94]
mov ecx, dword [esp + 0x78]
sub eax, ecx
lea esi, [eax - 1]
mov eax, esi
neg eax
sar eax, 0x1f
mov ecx, dword [esp + 0xb8]
and ecx, eax
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
mov ebp, dword [esp + 0x424]
add ecx, ebp
mov edi, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov dword [esp + 0xa8], edx
mov dword [esp + 0x40c], edi
mov dword [esp + 0xb4], eax
mov edx, dword [esp + 0xfc]
mov eax, dword [esp + 0x3f4]
mov edi, esi
mov esi, dword [esp + 0x94]
jmp 0x51b614
cmp esi, 2
jl 0x51acf9
movzx edi, byte [ebp]
xchg edi, eax
cmp al, 0x2e
xchg edi, eax
je 0x51ace0
xchg edi, eax
cmp al, 0x2c
xchg edi, eax
jne 0x51acf9
movzx edi, byte [ebp + 1]
xchg edi, eax
cmp al, 0x30
xchg edi, eax
jb 0x51acf9
xchg edi, eax
cmp al, 0x39
xchg edi, eax
ja 0x51acf9
xor ecx, ecx
jmp 0x51cf5b
mov eax, dword [esp + 0x3f4]
mov edi, esi
mov ecx, ebp
jmp 0x51b614
cmp edi, 0x102
jg 0x51adf7
cmp edi, 0x101
je 0x51ad90
cmp edi, 0x102
jne 0x51b334
mov eax, dword [0xdc4dc8]
mov ecx, dword [0xdc4dcc]
mov edx, dword [0xdc4dd0]
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.00516b40
mov eax, dword [esp + 0x14]
inc eax
mov ebx, dword [esp + 0x20]
mov ebp, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0xfc]
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0x3f4]
mov edi, esi
mov ecx, ebp
mov ebp, dword [esp + 0x424]
mov esi, dword [esp + 0x94]
jmp 0x51b614
mov eax, dword [0xdc4dd8]
mov ecx, dword [0xdc4ddc]
mov edx, dword [0xdc4de0]
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.00516b40
mov eax, dword [esp + 0x14]
inc eax
mov ebx, dword [esp + 0x20]
mov ebp, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0xfc]
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0x3f4]
mov edi, esi
mov ecx, ebp
mov ebp, dword [esp + 0x424]
mov esi, dword [esp + 0x94]
jmp 0x51b614
cmp edi, 0x104
jle 0x51aecd
cmp edi, 0x105
je 0x51ae72
cmp edi, 0x106
jne 0x51b334
mov eax, dword [0xdc4db8]
mov ecx, dword [0xdc4dbc]
mov edx, dword [0xdc4dc0]
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.00516b40
mov ebx, dword [esp + 0x20]
mov ebp, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0xfc]
mov eax, dword [esp + 0x3f4]
mov edi, esi
mov ecx, ebp
mov ebp, dword [esp + 0x424]
mov esi, dword [esp + 0x94]
jmp 0x51b614
mov eax, dword [0xdc4da8]
mov ecx, dword [0xdc4dac]
mov edx, dword [0xdc4db0]
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.00516b40
mov ebx, dword [esp + 0x20]
mov ebp, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0xfc]
mov eax, dword [esp + 0x3f4]
mov edi, esi
mov ecx, ebp
mov ebp, dword [esp + 0x424]
mov esi, dword [esp + 0x94]
jmp 0x51b614
mov dword [esp], ebp
mov dword [esp + 4], esi
cmp ecx, 0x104
sete al
mov byte [esp + 8], al
call fcn.0051a190
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0xc]
test eax, eax
je 0x51af02
mov edx, dword [esp + 0xa8]
mov ebx, dword [esp + 0x40c]
jmp 0x51af25
lea edx, [ecx - 1]
cmp edx, 0xb
jbe 0x51af17
mov edx, 5
lea ebx, [0x962ce8]
jmp 0x51af25
mov edx, dword [esp + 0xa8]
mov ebx, dword [esp + 0x40c]
mov ebp, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
mov dword [esp + 0xa8], edx
mov dword [esp + 0xc0], ecx
mov edi, esi
mov ecx, ebp
mov dword [esp + 0x40c], ebx
mov edx, dword [esp + 0xfc]
mov ebp, dword [esp + 0x424]
mov esi, dword [esp + 0x94]
mov ebx, eax
mov eax, dword [esp + 0x3f4]
jmp 0x51b614
cmp edi, 0x20c
jg 0x51b210
cmp edi, 0x10b
jg 0x51b025
cmp edi, 0x109
jle 0x51af9d
mov ebx, esi
mov edi, ebp
xor ebx, ebx
mov dword [esp + 0xd8], ebx
mov ebx, esi
jmp 0x51ce6b
cmp ecx, 0x108
jne 0x51afcc
test esi, esi
je 0x51afc6
cmp byte [ebp], 0x20
jne 0x51afc0
lea ebx, [esi - 1]
mov edi, ebx
neg ebx
sar ebx, 0x1f
and ebx, 1
add ebx, ebp
jmp 0x51afd0
mov edi, esi
mov ebx, ebp
jmp 0x51afd0
mov edi, esi
mov ebx, ebp
jmp 0x51afd0
mov edi, esi
mov ebx, ebp
mov dword [esp], ebx
mov dword [esp + 4], edi
cmp ecx, 0x109
sete al
mov byte [esp + 8], al
call fcn.0051a190
mov eax, dword [esp + 0xc]
mov ebx, dword [esp + 0x18]
mov ebp, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0xfc]
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0x3f4]
mov edi, esi
mov ecx, ebp
mov ebp, dword [esp + 0x424]
mov esi, dword [esp + 0x94]
jmp 0x51b614
cmp edi, 0x113
jne 0x51b0c6
cmp esi, 4
jl 0x51b042
movzx ecx, byte [ebp]
add ecx, 0xffffffd0
cmp cl, 9
jbe 0x51b058
mov ebx, dword [0xdc3bb8]
mov eax, dword [esp + 0x3f4]
mov edi, esi
mov ecx, ebp
jmp 0x51b614
lea eax, [0xa2ca60]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], 4
call fcn.005264e0
mov eax, dword [esp + 0x94]
lea esi, [eax - 4]
mov ecx, esi
neg ecx
sar ecx, 0x1f
and ecx, 4
mov edx, dword [esp + 0x424]
lea ebp, [ecx + edx]
mov ebx, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xfc]
mov dword [esp + 0x88], ebx
mov eax, dword [esp + 0x3f4]
mov ebx, ecx
mov edi, esi
mov ecx, ebp
mov ebp, dword [esp + 0x424]
mov esi, dword [esp + 0x94]
jmp 0x51b614
cmp edi, 0x114
jne 0x51b189
cmp esi, 2
jge 0x51b0ed
mov ebx, dword [0xdc3bb8]
mov eax, dword [esp + 0x3f4]
mov edi, esi
mov ecx, ebp
jmp 0x51b614
lea eax, [0xa2ca60]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], 2
call fcn.005264e0
mov eax, dword [esp + 0x94]
lea ecx, [eax - 2]
mov edx, ecx
neg ecx
sar ecx, 0x1f
and ecx, 2
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x424]
add ecx, ebp
mov esi, dword [esp + 0xc]
test ebx, ebx
je 0x51b153
mov dword [esp + 0x88], esi
mov eax, dword [esp + 0x3f4]
mov edi, edx
mov edx, dword [esp + 0xfc]
mov esi, dword [esp + 0x94]
jmp 0x51b614
cmp esi, 0x45
jl 0x51b160
add esi, 0x76c
jmp 0x51b166
add esi, 0x7d0
mov dword [esp + 0x88], esi
mov eax, dword [esp + 0x3f4]
mov edi, edx
mov edx, dword [esp + 0xfc]
mov esi, dword [esp + 0x94]
jmp 0x51b614
cmp edi, 0x20c
jne 0x51b334
mov dword [esp], ebp
mov dword [esp + 4], esi
mov byte [esp + 8], 0
call fcn.0051a190
mov eax, dword [esp + 0xc]
cmp eax, 0x18
jb 0x51b1bc
mov ecx, 4
lea edx, [0x9625c1]
jmp 0x51b1ca
mov ecx, dword [esp + 0xa8]
mov edx, dword [esp + 0x40c]
mov ebx, dword [esp + 0x18]
mov ebp, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
mov dword [esp + 0xa8], ecx
mov dword [esp + 0xe0], eax
mov eax, dword [esp + 0x3f4]
mov edi, esi
mov ecx, ebp
mov dword [esp + 0x40c], edx
mov edx, dword [esp + 0xfc]
mov ebp, dword [esp + 0x424]
mov esi, dword [esp + 0x94]
jmp 0x51b614
cmp edi, 0x210
jle 0x51b50a
cmp edi, 0x212
jle 0x51b344
cmp edi, 0x215
jne 0x51b2ae
cmp esi, 2
jge 0x51b24b
mov ebx, dword [0xdc3bb8]
mov eax, dword [esp + 0x3f4]
mov edi, esi
mov ecx, ebp
jmp 0x51b614
lea ecx, [esi - 2]
mov edi, ecx
neg ecx
sar ecx, 0x1f
and ecx, 2
add ecx, ebp
cmp word [ebp], 0x4d41
jne 0x51b27b
mov dword [esp + 0x110], eax
mov eax, 1
mov byte [esp + 0x37], al
mov eax, dword [esp + 0x110]
jmp 0x51b2a2
cmp word [ebp], 0x4d50
jne 0x51b29c
mov dword [esp + 0x118], eax
mov eax, 1
mov byte [esp + 0x36], al
mov eax, dword [esp + 0x118]
jmp 0x51b2a2
mov ebx, dword [0xdc3bb8]
mov eax, dword [esp + 0x3f4]
jmp 0x51b614
cmp edi, 0x216
jne 0x51b334
cmp esi, 2
jge 0x51b2d1
mov ebx, dword [0xdc3bb8]
mov eax, dword [esp + 0x3f4]
mov edi, esi
mov ecx, ebp
jmp 0x51b614
lea ecx, [esi - 2]
mov edi, ecx
neg ecx
sar ecx, 0x1f
and ecx, 2
add ecx, ebp
cmp word [ebp], 0x6d61
jne 0x51b301
mov dword [esp + 0x100], eax
mov eax, 1
mov byte [esp + 0x37], al
mov eax, dword [esp + 0x100]
jmp 0x51b328
cmp word [ebp], 0x6d70
jne 0x51b322
mov dword [esp + 0x108], eax
mov eax, 1
mov byte [esp + 0x36], al
mov eax, dword [esp + 0x108]
jmp 0x51b328
mov ebx, dword [0xdc3bb8]
mov eax, dword [esp + 0x3f4]
jmp 0x51b614
mov eax, dword [esp + 0x3f4]
mov edi, esi
mov ecx, ebp
jmp 0x51b614
mov dword [esp], ebp
mov dword [esp + 4], esi
cmp ecx, 0x212
sete al
mov byte [esp + 8], al
call fcn.0051a190
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
test eax, eax
je 0x51b39f
mov ebp, dword [esp + 0x424]
mov esi, dword [esp + 0x94]
mov dword [esp + 0xa0], ecx
mov edi, ebx
mov ecx, edx
mov edx, dword [esp + 0xfc]
mov ebx, eax
mov eax, dword [esp + 0x3f4]
jmp 0x51b614
cmp ecx, 0x3c
jb 0x51b3eb
mov ebp, dword [esp + 0x424]
mov esi, dword [esp + 0x94]
mov edi, 6
mov dword [esp + 0xa8], edi
mov dword [esp + 0xa0], ecx
mov edi, ebx
mov ecx, edx
lea edx, [0x963b1c]
mov dword [esp + 0x40c], edx
mov edx, dword [esp + 0xfc]
mov ebx, eax
mov eax, dword [esp + 0x3f4]
jmp 0x51b614
cmp ebx, 2
jl 0x51b4f0
movzx ebp, byte [edx]
xchg ebp, eax
cmp al, 0x2e
xchg ebp, eax
je 0x51b409
xchg ebp, eax
cmp al, 0x2c
xchg ebp, eax
jne 0x51b4d6
movzx ebp, byte [edx + 1]
add ebp, 0xffffffd0
xchg ebp, eax
cmp al, 9
xchg ebp, eax
jbe 0x51b431
mov ebp, dword [esp + 0xa8]
mov esi, dword [esp + 0xb4]
mov edi, dword [esp + 0x40c]
jmp 0x51cd9f
mov dword [esp + 0xf4], ecx
mov dword [esp + 0xf0], eax
mov dword [esp + 0xa4], ebx
mov dword [esp + 0x408], edx
mov eax, dword [esp + 0x3fc]
mov dword [esp], eax
mov ecx, dword [esp + 0x98]
mov dword [esp + 4], ecx
call fcn.00515d90
mov eax, dword [esp + 0x10]
and eax, 0xffff
cmp eax, 0x22
je 0x51b47a
cmp eax, 0x23
jne 0x51b4be
mov edx, dword [esp + 0xfc]
mov ebp, dword [esp + 0x424]
mov esi, dword [esp + 0x94]
mov eax, dword [esp + 0xf4]
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x3f4]
mov ebx, dword [esp + 0xf0]
mov edi, dword [esp + 0xa4]
mov ecx, dword [esp + 0x408]
jmp 0x51b614
mov eax, dword [esp + 0x408]
mov ecx, dword [esp + 0xa4]
mov edx, 2
jmp 0x51cde3
mov ebp, dword [esp + 0xa8]
mov esi, dword [esp + 0xb4]
mov edi, dword [esp + 0x40c]
jmp 0x51cd9f
mov ebp, dword [esp + 0xa8]
mov esi, dword [esp + 0xb4]
mov edi, dword [esp + 0x40c]
jmp 0x51cd9f
cmp edi, 0x20e
jg 0x51b596
mov dword [esp], ebp
mov dword [esp + 4], esi
cmp ecx, 0x20e
sete al
mov byte [esp + 8], al
call fcn.0051a190
mov eax, dword [esp + 0xc]
cmp eax, 0xc
jbe 0x51b545
mov ecx, 4
lea edx, [0x9625c1]
jmp 0x51b553
mov ecx, dword [esp + 0xa8]
mov edx, dword [esp + 0x40c]
mov ebx, dword [esp + 0x18]
mov ebp, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
mov dword [esp + 0xa8], ecx
mov dword [esp + 0xe0], eax
mov eax, dword [esp + 0x3f4]
mov edi, esi
mov ecx, ebp
mov dword [esp + 0x40c], edx
mov edx, dword [esp + 0xfc]
mov ebp, dword [esp + 0x424]
mov esi, dword [esp + 0x94]
jmp 0x51b614
mov dword [esp], ebp
mov dword [esp + 4], esi
cmp ecx, 0x210
sete al
mov byte [esp + 8], al
call fcn.0051a190
mov eax, dword [esp + 0xc]
cmp eax, 0x3c
jb 0x51b5c5
mov ecx, 6
lea edx, [0x963b16]
jmp 0x51b5d3
mov ecx, dword [esp + 0xa8]
mov edx, dword [esp + 0x40c]
mov ebx, dword [esp + 0x18]
mov ebp, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
mov dword [esp + 0xa8], ecx
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0x3f4]
mov edi, esi
mov ecx, ebp
mov dword [esp + 0x40c], edx
mov edx, dword [esp + 0xfc]
mov ebp, dword [esp + 0x424]
mov esi, dword [esp + 0x94]
mov edx, dword [esp + 0xa8]
test edx, edx
jne 0x51cb6a
test ebx, ebx
je 0x51a635
jmp 0x51c9b8
test esi, esi
jne 0x51c5d6
movzx edx, byte [esp + 0x36]
test dl, dl
je 0x51b652
mov edx, dword [esp + 0xe0]
cmp edx, 0xc
jge 0x51b659
add edx, 0xc
jmp 0x51b669
mov edx, dword [esp + 0xe0]
movzx ebx, byte [esp + 0x37]
test bl, bl
je 0x51b669
cmp edx, 0xc
jne 0x51b669
xor edx, edx
mov ebx, dword [esp + 0x8c]
test ebx, ebx
jl 0x51bc6d
mov eax, dword [esp + 0x88]
test eax, 3
jne 0x51b716
mov edi, 0x51eb851f
mov ecx, edx
imul edi
mov dword [esp + 0xfc], edx
mov eax, dword [esp + 0x88]
sar eax, 0x1f
sar edx, 5
sub edx, eax
imul edx, edx, 0x64
mov esi, dword [esp + 0x88]
cmp esi, edx
jne 0x51b6cd
mov edx, dword [esp + 0xfc]
sar edx, 7
sub edx, eax
imul edx, edx, 0x190
cmp esi, edx
jne 0x51b705
cmp ebx, 0x3c
jne 0x51b6e0
mov edx, ebx
mov eax, 2
mov ebx, 0x1d
jmp 0x51b6ed
jle 0x51b6e7
lea edx, [ebx - 1]
jmp 0x51b6e9
mov edx, ebx
xor eax, eax
xor ebx, ebx
mov esi, dword [esp + 0x94]
mov edi, ebx
mov ebx, edx
mov edx, ecx
mov ecx, eax
mov eax, dword [esp + 0x88]
jmp 0x51b71a
mov eax, esi
mov edx, ecx
mov esi, dword [esp + 0x94]
xor ecx, ecx
xor edi, edi
jmp 0x51b71a
xor ecx, ecx
xor edi, edi
lea esi, [ebx - 1]
cmp esi, 0x16c
ja 0x51bad9
test ecx, ecx
jne 0x51b783
mov ecx, eax
mov eax, 0x84210843
mov edi, edx
imul esi
lea edx, [edx + ebx - 1]
sar edx, 4
lea eax, [edx + 1]
cmp eax, 0xd
jae 0x51c9ae
lea esi, [0xcc6ce0]
lea ebp, [esi + edx*4 + 4]
cmp dword [ebp], ebx
jge 0x51b75d
lea eax, [edx + 2]
lea edx, [eax - 1]
cmp edx, 0xd
jae 0x51c9a2
mov edx, dword [esi + eax*4 - 4]
sub ebx, edx
mov edx, edi
mov ebp, dword [esp + 0x424]
mov ecx, eax
mov edi, ebx
mov eax, dword [esp + 0x88]
mov ebx, dword [esp + 0xc0]
test ebx, ebx
jl 0x51b92e
cmp ecx, ebx
je 0x51b92e
nop
lea eax, [esp + 0x230]
mov dword [esp], eax
mov eax, dword [esp + 0x470]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x474]
mov dword [esp + 8], eax
call fcn.00452710
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.00452570
nop
mov eax, dword [esp + 0xc]
mov dword [esp + 0x3a4], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x4c], ecx
lea edx, [esp + 0x210]
mov dword [esp], edx
mov edx, dword [esp + 0x424]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x94]
mov dword [esp + 8], edx
call fcn.00452710
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.00452570
mov eax, dword [esp + 0xc]
mov dword [esp + 0x3a0], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x48], ecx
lea edx, [0x920300]
mov dword [esp], edx
call fcn.0040c320
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x46c]
mov dword [eax + 4], ecx
mov ecx, dword [0xe12160]
test ecx, ecx
jne 0x51b873
mov ecx, dword [esp + 0x468]
jmp 0x51b881
call fcn.00469680
mov ecx, dword [esp + 0x468]
mov dword [edi], ecx
mov dword [eax], ecx
mov ecx, dword [esp + 0x4c]
mov dword [eax + 0xc], ecx
mov ecx, dword [0xe12160]
test ecx, ecx
jne 0x51b89d
mov ecx, dword [esp + 0x3a4]
jmp 0x51b8ab
call fcn.00469680
mov ecx, dword [esp + 0x3a4]
mov dword [edi], ecx
mov dword [eax + 8], ecx
mov dword [eax + 0x14], 0
mov dword [eax + 0x10], 0
mov ecx, dword [esp + 0x48]
mov dword [eax + 0x1c], ecx
mov ecx, dword [0xe12160]
test ecx, ecx
jne 0x51b8d6
mov ecx, dword [esp + 0x3a0]
jmp 0x51b8e4
call fcn.00469680
mov ecx, dword [esp + 0x3a0]
mov dword [edi], ecx
mov dword [esp + 0x3d8], eax
mov dword [eax + 0x18], ecx
mov dword [eax + 0x24], 0x22
lea ecx, [0x97c7b6]
mov dword [eax + 0x20], ecx
lea edi, [esp + 0x480]
xor eax, eax
call fcn.0046992b
lea ecx, [0xa2e0a4]
mov dword [esp + 0x494], ecx
mov ecx, dword [esp + 0x3d8]
mov dword [esp + 0x498], ecx
add esp, 0x464
ret
mov ebx, dword [esp + 0xe8]
test ebx, ebx
jl 0x51bc96
cmp edi, ebx
je 0x51bc96
nop
lea eax, [esp + 0x1f0]
mov dword [esp], eax
mov eax, dword [esp + 0x470]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x474]
mov dword [esp + 8], eax
call fcn.00452710
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.00452570
nop
mov eax, dword [esp + 0xc]
mov dword [esp + 0x39c], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x44], ecx
lea edx, [esp + 0x1d0]
mov dword [esp], edx
mov edx, dword [esp + 0x424]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x94]
mov dword [esp + 8], edx
call fcn.00452710
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.00452570
mov eax, dword [esp + 0xc]
mov dword [esp + 0x398], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x40], ecx
lea edx, [0x920300]
mov dword [esp], edx
call fcn.0040c320
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x46c]
mov dword [eax + 4], ecx
mov ecx, dword [0xe12160]
test ecx, ecx
jne 0x51ba1e
mov ecx, dword [esp + 0x468]
jmp 0x51ba2c
call fcn.00469680
mov ecx, dword [esp + 0x468]
mov dword [edi], ecx
mov dword [eax], ecx
mov ecx, dword [esp + 0x44]
mov dword [eax + 0xc], ecx
mov ecx, dword [0xe12160]
test ecx, ecx
jne 0x51ba48
mov ecx, dword [esp + 0x39c]
jmp 0x51ba56
call fcn.00469680
mov ecx, dword [esp + 0x39c]
mov dword [edi], ecx
mov dword [eax + 8], ecx
mov dword [eax + 0x14], 0
mov dword [eax + 0x10], 0
mov ecx, dword [esp + 0x40]
mov dword [eax + 0x1c], ecx
mov ecx, dword [0xe12160]
test ecx, ecx
jne 0x51ba81
mov ecx, dword [esp + 0x398]
jmp 0x51ba8f
call fcn.00469680
mov ecx, dword [esp + 0x398]
mov dword [edi], ecx
mov dword [esp + 0x3d4], eax
mov dword [eax + 0x18], ecx
mov dword [eax + 0x24], 0x20
lea ecx, [0x97b070]
mov dword [eax + 0x20], ecx
lea edi, [esp + 0x480]
xor eax, eax
call fcn.0046992b
lea ecx, [0xa2e0a4]
mov dword [esp + 0x494], ecx
mov ecx, dword [esp + 0x3d4]
mov dword [esp + 0x498], ecx
add esp, 0x464
ret
nop
lea eax, [esp + 0x270]
mov dword [esp], eax
mov eax, dword [esp + 0x470]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x474]
mov dword [esp + 8], eax
call fcn.00452710
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.00452570
nop
mov eax, dword [esp + 0xc]
mov dword [esp + 0x3ac], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x54], ecx
lea edx, [esp + 0x250]
mov dword [esp], edx
mov edx, dword [esp + 0x424]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x94]
mov dword [esp + 8], edx
call fcn.00452710
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.00452570
mov eax, dword [esp + 0xc]
mov dword [esp + 0x3a8], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x50], ecx
lea edx, [0x920300]
mov dword [esp], edx
call fcn.0040c320
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x46c]
mov dword [eax + 4], ecx
mov ecx, dword [0xe12160]
test ecx, ecx
jne 0x51bbb2
mov ecx, dword [esp + 0x468]
jmp 0x51bbc0
call fcn.00469680
mov ecx, dword [esp + 0x468]
mov dword [edi], ecx
mov dword [eax], ecx
mov ecx, dword [esp + 0x54]
mov dword [eax + 0xc], ecx
mov ecx, dword [0xe12160]
test ecx, ecx
jne 0x51bbdc
mov ecx, dword [esp + 0x3ac]
jmp 0x51bbea
call fcn.00469680
mov ecx, dword [esp + 0x3ac]
mov dword [edi], ecx
mov dword [eax + 8], ecx
mov dword [eax + 0x14], 0
mov dword [eax + 0x10], 0
mov ecx, dword [esp + 0x50]
mov dword [eax + 0x1c], ecx
mov ecx, dword [0xe12160]
test ecx, ecx
jne 0x51bc15
mov ecx, dword [esp + 0x3a8]
jmp 0x51bc23
call fcn.00469680
mov ecx, dword [esp + 0x3a8]
mov dword [edi], ecx
mov dword [esp + 0x3dc], eax
mov dword [eax + 0x18], ecx
mov dword [eax + 0x24], 0x1a
lea ecx, [0x976f5e]
mov dword [eax + 0x20], ecx
lea edi, [esp + 0x480]
xor eax, eax
call fcn.0046992b
lea ecx, [0xa2e0a4]
mov dword [esp + 0x494], ecx
mov ecx, dword [esp + 0x3dc]
mov dword [esp + 0x498], ecx
add esp, 0x464
ret
mov ebx, dword [esp + 0xc0]
test ebx, ebx
jge 0x51bc7d
mov ebx, 1
mov edi, dword [esp + 0xe8]
test edi, edi
jge 0x51bc8d
mov edi, 1
mov eax, dword [esp + 0x88]
mov ecx, ebx
test edi, edi
jle 0x51bd28
cmp ecx, 2
jne 0x51bcf3
test eax, 3
jne 0x51bcef
mov ebx, 0x51eb851f
mov esi, edx
imul ebx
mov dword [esp + 0xfc], edx
mov ebx, dword [esp + 0x88]
mov eax, ebx
sar ebx, 0x1f
sar edx, 5
sub edx, ebx
imul edx, edx, 0x64
cmp eax, edx
jne 0x51bce8
mov edx, dword [esp + 0xfc]
sar edx, 7
sub edx, ebx
imul edx, edx, 0x190
cmp eax, edx
jne 0x51bcf5
mov edx, 0x1d
jmp 0x51bd20
mov esi, edx
jmp 0x51bcf5
mov esi, edx
cmp ecx, 0xd
jae 0x51c996
lea edx, [ecx - 1]
lea ebx, [0xcc6ce0]
mov ebp, dword [ebx + ecx*4]
cmp edx, 0xd
jae 0x51c98a
sub ebp, dword [ebx + ecx*4 - 4]
mov edx, ebp
mov ebp, dword [esp + 0x424]
cmp edx, edi
jge 0x51bebc
nop
lea eax, [esp + 0x1b0]
mov dword [esp], eax
mov eax, dword [esp + 0x470]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x474]
mov dword [esp + 8], eax
call fcn.00452710
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.00452570
nop
mov eax, dword [esp + 0xc]
mov dword [esp + 0x394], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x3c], ecx
lea edx, [esp + 0x190]
mov dword [esp], edx
mov edx, dword [esp + 0x424]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x94]
mov dword [esp + 8], edx
call fcn.00452710
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.00452570
mov eax, dword [esp + 0xc]
mov dword [esp + 0x390], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x38], ecx
lea edx, [0x920300]
mov dword [esp], edx
call fcn.0040c320
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x46c]
mov dword [eax + 4], ecx
mov ecx, dword [0xe12160]
test ecx, ecx
jne 0x51be01
mov ecx, dword [esp + 0x468]
jmp 0x51be0f
call fcn.00469680
mov ecx, dword [esp + 0x468]
mov dword [edi], ecx
mov dword [eax], ecx
mov ecx, dword [esp + 0x3c]
mov dword [eax + 0xc], ecx
mov ecx, dword [0xe12160]
test ecx, ecx
jne 0x51be2b
mov ecx, dword [esp + 0x394]
jmp 0x51be39
call fcn.00469680
mov ecx, dword [esp + 0x394]
mov dword [edi], ecx
mov dword [eax + 8], ecx
mov dword [eax + 0x14], 0
mov dword [eax + 0x10], 0
mov ecx, dword [esp + 0x38]
mov dword [eax + 0x1c], ecx
mov ecx, dword [0xe12160]
test ecx, ecx
jne 0x51be64
mov ecx, dword [esp + 0x390]
jmp 0x51be72
call fcn.00469680
mov ecx, dword [esp + 0x390]
mov dword [edi], ecx
mov dword [esp + 0x3d0], eax
mov dword [eax + 0x18], ecx
mov dword [eax + 0x24], 0x12
lea ecx, [0x97010d]
mov dword [eax + 0x20], ecx
lea edi, [esp + 0x480]
xor eax, eax
call fcn.0046992b
lea ecx, [0xa2e0a4]
mov dword [esp + 0x494], ecx
mov ecx, dword [esp + 0x3d0]
mov dword [esp + 0x498], ecx
add esp, 0x464
ret
mov edx, dword [esp + 0x3f4]
test edx, edx
jne 0x51c55d
mov edx, dword [esp + 0x80]
cmp edx, 0xffffffff
jne 0x51c26b
mov edx, dword [esp + 0x84]
test edx, edx
je 0x51c1eb
mov edx, dword [0xdc30b8]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edi
mov dword [esp + 0xc], esi
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], edx
call fcn.00520f00
lea edi, [esp + 0x428]
lea esi, [esp + 0x20]
call fcn.00469e0e
mov eax, dword [esp + 0x42c]
test eax, 0x80000000
je 0x51bf70
mov ecx, dword [esp + 0x428]
shl eax, 1
mov edx, ecx
shl ecx, 1
shr edx, 0x1f
or edx, eax
mov eax, edx
shl edx, 1
shr eax, 0x1f
shr ecx, 0x1f
or ecx, edx
add ecx, 0xd7b17f80
adc eax, 0xd
jmp 0x51bf7e
mov ecx, dword [esp + 0x430]
mov eax, dword [esp + 0x434]
mov edx, dword [esp + 0x47c]
mov dword [esp], edx
mov ebx, dword [esp + 0x3f0]
mov dword [esp + 4], ebx
mov ebp, dword [esp + 0x84]
mov dword [esp + 8], ebp
add ecx, 0x886e0900
adc eax, 0xfffffff1
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], ecx
call fcn.005240b0
movzx eax, byte [esp + 0x18]
mov ecx, dword [esp + 0x14]
test al, al
jne 0x51c11e
mov eax, dword [esp + 0x84]
cmp eax, 3
jle 0x51c01b
mov edx, dword [esp + 0x3f0]
cmp word [edx], 0x4d47
jne 0x51c022
cmp byte [edx + 2], 0x54
jne 0x51c022
lea ecx, [0xa2ca60]
mov dword [esp], ecx
lea ecx, [edx + 3]
mov dword [esp + 4], ecx
lea ecx, [eax - 3]
mov dword [esp + 8], ecx
call fcn.005264e0
mov eax, dword [esp + 0xc]
imul ecx, eax, 0xe10
mov eax, dword [esp + 0x84]
mov edx, dword [esp + 0x3f0]
jmp 0x51c022
mov edx, dword [esp + 0x3f0]
mov dword [esp + 0xb0], ecx
nop
lea ebx, [esp + 0x150]
mov dword [esp], ebx
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call fcn.00452710
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.00452570
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov eax, dword [esp + 0xb0]
mov dword [esp + 8], eax
call fcn.00521cb0
mov eax, dword [esp + 0xc]
lea ecx, [0xdcec20]
cmp eax, ecx
jne 0x51c08c
xor eax, eax
mov ecx, dword [esp + 0x42c]
nop
test ecx, 0x80000000
je 0x51c0e7
mov edx, dword [esp + 0x428]
shl ecx, 1
mov ebx, edx
shl edx, 1
shr ebx, 0x1f
or ebx, ecx
mov ecx, ebx
shl ebx, 1
shr edx, 0x1f
or ebx, edx
shr ecx, 0x1f
add ebx, 0xd7b17f80
mov dword [esp + 0x430], ebx
adc ecx, 0xd
mov dword [esp + 0x434], ecx
and dword [esp + 0x428], 0x3fffffff
mov dword [esp + 0x42c], 0
mov dword [esp + 0x438], eax
lea edi, [esp + 0x480]
lea esi, [esp + 0x428]
call fcn.00469e0e
mov dword [esp + 0x494], 0
mov dword [esp + 0x498], 0
add esp, 0x464
ret
lea eax, [esp + 0x428]
mov dword [esp], eax
mov eax, ecx
sar ecx, 0x1f
xor edx, edx
sub edx, eax
mov eax, 0
sbb eax, ecx
mov dword [esp + 8], eax
mov dword [esp + 4], edx
call fcn.0051e160
nop
mov eax, dword [esp + 0x47c]
lea ecx, [0xdcec20]
cmp eax, ecx
jne 0x51c159
xor eax, eax
mov ecx, dword [esp + 0x42c]
nop
test ecx, 0x80000000
je 0x51c1b4
mov edx, dword [esp + 0x428]
shl ecx, 1
mov ebx, edx
shl edx, 1
shr ebx, 0x1f
or ebx, ecx
mov ecx, ebx
shl ebx, 1
shr ecx, 0x1f
shr edx, 0x1f
or ebx, edx
add ebx, 0xd7b17f80
mov dword [esp + 0x430], ebx
adc ecx, 0xd
mov dword [esp + 0x434], ecx
and dword [esp + 0x428], 0x3fffffff
mov dword [esp + 0x42c], 0
mov dword [esp + 0x438], eax
lea edi, [esp + 0x480]
lea esi, [esp + 0x428]
call fcn.00469e0e
mov dword [esp + 0x494], 0
mov dword [esp + 0x498], 0
add esp, 0x464
ret
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edi
mov dword [esp + 0xc], esi
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x478]
mov dword [esp + 0x1c], eax
call fcn.00520f00
lea edi, [esp + 0x450]
lea esi, [esp + 0x20]
call fcn.00469e0e
lea edi, [esp + 0x480]
lea esi, [esp + 0x450]
call fcn.00469e0e
mov dword [esp + 0x494], 0
mov dword [esp + 0x498], 0
add esp, 0x464
ret
mov edx, dword [0xdc30b8]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edi
mov dword [esp + 0xc], esi
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], edx
call fcn.00520f00
lea edi, [esp + 0x43c]
lea esi, [esp + 0x20]
call fcn.00469e0e
lea eax, [esp + 0x43c]
mov dword [esp], eax
mov eax, dword [esp + 0x80]
mov ecx, eax
sar eax, 0x1f
xor edx, edx
sub edx, ecx
mov ebx, 0
sbb ebx, eax
mov dword [esp + 8], ebx
mov dword [esp + 4], edx
call fcn.0051e160
mov eax, dword [esp + 0x440]
test eax, 0x80000000
je 0x51c31f
mov ecx, dword [esp + 0x43c]
shl eax, 1
mov edx, ecx
shl ecx, 1
shr edx, 0x1f
or edx, eax
mov eax, edx
shl edx, 1
shr eax, 0x1f
shr ecx, 0x1f
or ecx, edx
add ecx, 0xd7b17f80
adc eax, 0xd
jmp 0x51c32d
mov ecx, dword [esp + 0x444]
mov eax, dword [esp + 0x448]
mov edx, dword [esp + 0x47c]
mov dword [esp], edx
add ecx, 0x886e0900
adc eax, 0xfffffff1
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
call fcn.00521ec0
mov eax, dword [esp + 0x80]
cmp dword [esp + 0x14], eax
jne 0x51c3aa
mov ecx, dword [esp + 0x84]
test ecx, ecx
jne 0x51c36c
mov edx, 1
jmp 0x51c3b3
mov edx, dword [esp + 0x10]
cmp ecx, edx
je 0x51c378
xor edx, edx
jmp 0x51c3b3
mov eax, dword [esp + 0xc]
mov dword [esp], eax
mov eax, dword [esp + 0x3f0]
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.004034f0
movzx eax, byte [esp + 0xc]
mov ecx, dword [esp + 0x84]
mov edx, eax
mov eax, dword [esp + 0x80]
jmp 0x51c3b3
mov ecx, dword [esp + 0x84]
xor edx, edx
test dl, dl
je 0x51c461
nop
mov eax, dword [esp + 0x47c]
lea ecx, [0xdcec20]
cmp eax, ecx
jne 0x51c3cf
xor eax, eax
mov ecx, dword [esp + 0x440]
nop
test ecx, 0x80000000
je 0x51c42a
mov edx, dword [esp + 0x43c]
mov ebx, edx
shl edx, 1
shl ecx, 1
shr ebx, 0x1f
or ebx, ecx
mov ecx, ebx
shl ebx, 1
shr ecx, 0x1f
shr edx, 0x1f
or edx, ebx
add edx, 0xd7b17f80
mov dword [esp + 0x444], edx
adc ecx, 0xd
mov dword [esp + 0x448], ecx
and dword [esp + 0x43c], 0x3fffffff
mov dword [esp + 0x440], 0
mov dword [esp + 0x44c], eax
lea edi, [esp + 0x480]
lea esi, [esp + 0x43c]
call fcn.00469e0e
mov dword [esp + 0x494], 0
mov dword [esp + 0x498], 0
add esp, 0x464
ret
nop
lea eax, [esp + 0x170]
mov dword [esp], eax
mov eax, dword [esp + 0x3f0]
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.00452710
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.00452570
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov eax, dword [esp + 0x80]
mov dword [esp + 8], eax
call fcn.00521cb0
mov eax, dword [esp + 0xc]
lea ecx, [0xdcec20]
cmp eax, ecx
jne 0x51c4cb
xor eax, eax
mov ecx, dword [esp + 0x440]
nop
test ecx, 0x80000000
je 0x51c526
mov edx, dword [esp + 0x43c]
mov ebx, edx
shl edx, 1
shl ecx, 1
shr ebx, 0x1f
or ebx, ecx
mov ecx, ebx
shl ebx, 1
shr edx, 0x1f
or ebx, edx
shr ecx, 0x1f
add ebx, 0xd7b17f80
mov dword [esp + 0x444], ebx
adc ecx, 0xd
mov dword [esp + 0x448], ecx
and dword [esp + 0x43c], 0x3fffffff
mov dword [esp + 0x440], 0
mov dword [esp + 0x44c], eax
lea edi, [esp + 0x480]
lea esi, [esp + 0x43c]
call fcn.00469e0e
mov dword [esp + 0x494], 0
mov dword [esp + 0x498], 0
add esp, 0x464
ret
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edi
mov dword [esp + 0xc], esi
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], edx
call fcn.00520f00
lea edi, [esp + 0x450]
lea esi, [esp + 0x20]
call fcn.00469e0e
lea edi, [esp + 0x480]
lea esi, [esp + 0x450]
call fcn.00469e0e
mov dword [esp + 0x494], 0
mov dword [esp + 0x498], 0
add esp, 0x464
ret
mov dword [esp], ebp
mov dword [esp + 4], esi
call fcn.00519b10
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp], 0
lea edx, [0x96c66c]
mov dword [esp + 4], edx
mov dword [esp + 8], 0xe
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
call fcn.004522d0
nop
mov eax, dword [esp + 0x14]
mov dword [esp + 0x41c], eax
mov ecx, dword [esp + 0x18]
mov dword [esp + 0xd0], ecx
lea edx, [esp + 0x330]
mov dword [esp], edx
mov edx, dword [esp + 0x470]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x474]
mov dword [esp + 8], edx
call fcn.00452710
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.00452570
nop
mov eax, dword [esp + 0xc]
mov dword [esp + 0x3c4], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x6c], ecx
lea edx, [esp + 0x310]
mov dword [esp], edx
mov edx, dword [esp + 0x424]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x94]
mov dword [esp + 8], edx
call fcn.00452710
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.00452570
mov eax, dword [esp + 0xc]
mov dword [esp + 0x3c0], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x68], ecx
lea edx, [0x920300]
mov dword [esp], edx
call fcn.0040c320
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x46c]
mov dword [eax + 4], ecx
mov ecx, dword [0xe12160]
test ecx, ecx
jne 0x51c6ff
mov ecx, dword [esp + 0x468]
jmp 0x51c70d
call fcn.00469680
mov ecx, dword [esp + 0x468]
mov dword [edi], ecx
mov dword [eax], ecx
mov ecx, dword [esp + 0x6c]
mov dword [eax + 0xc], ecx
mov ecx, dword [0xe12160]
test ecx, ecx
jne 0x51c729
mov ecx, dword [esp + 0x3c4]
jmp 0x51c737
call fcn.00469680
mov ecx, dword [esp + 0x3c4]
mov dword [edi], ecx
mov dword [eax + 8], ecx
mov dword [eax + 0x14], 0
mov dword [eax + 0x10], 0
mov ecx, dword [esp + 0x68]
mov dword [eax + 0x1c], ecx
mov ecx, dword [0xe12160]
test ecx, ecx
jne 0x51c762
mov ecx, dword [esp + 0x3c0]
jmp 0x51c770
call fcn.00469680
mov ecx, dword [esp + 0x3c0]
mov dword [edi], ecx
mov dword [eax + 0x18], ecx
mov ecx, dword [esp + 0xd0]
mov dword [eax + 0x24], ecx
mov ecx, dword [0xe12160]
test ecx, ecx
jne 0x51c790
mov ecx, dword [esp + 0x41c]
jmp 0x51c79e
call fcn.00469680
mov ecx, dword [esp + 0x41c]
mov dword [edi], ecx
mov dword [esp + 0x3e8], eax
mov dword [eax + 0x20], ecx
lea edi, [esp + 0x480]
xor eax, eax
call fcn.0046992b
lea ecx, [0xa2e0a4]
mov dword [esp + 0x494], ecx
mov ecx, dword [esp + 0x3e8]
mov dword [esp + 0x498], ecx
add esp, 0x464
ret
nop
lea eax, [esp + 0x370]
mov dword [esp], eax
mov eax, dword [esp + 0x470]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x474]
mov dword [esp + 8], eax
call fcn.00452710
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.00452570
nop
mov eax, dword [esp + 0xc]
mov dword [esp + 0x3cc], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x74], ecx
lea edx, [esp + 0x350]
mov dword [esp], edx
mov edx, dword [esp + 0x424]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x94]
mov dword [esp + 8], edx
call fcn.00452710
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.00452570
mov eax, dword [esp + 0xc]
mov dword [esp + 0x3c8], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x70], ecx
lea edx, [0x920300]
mov dword [esp], edx
call fcn.0040c320
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x46c]
mov dword [eax + 4], ecx
mov ecx, dword [0xe12160]
test ecx, ecx
jne 0x51c8b1
mov ecx, dword [esp + 0x468]
jmp 0x51c8bf
call fcn.00469680
mov ecx, dword [esp + 0x468]
mov dword [edi], ecx
mov dword [eax], ecx
mov ecx, dword [esp + 0x74]
mov dword [eax + 0xc], ecx
mov ecx, dword [0xe12160]
test ecx, ecx
jne 0x51c8db
mov ecx, dword [esp + 0x3cc]
jmp 0x51c8e9
call fcn.00469680
mov ecx, dword [esp + 0x3cc]
mov dword [edi], ecx
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0xac]
mov dword [eax + 0x14], ecx
mov ecx, dword [0xe12160]
test ecx, ecx
jne 0x51c909
mov ecx, dword [esp + 0x410]
jmp 0x51c917
call fcn.00469680
mov ecx, dword [esp + 0x410]
mov dword [edi], ecx
mov dword [eax + 0x10], ecx
mov ecx, dword [esp + 0x70]
mov dword [eax + 0x1c], ecx
mov ecx, dword [0xe12160]
test ecx, ecx
jne 0x51c934
mov ecx, dword [esp + 0x3c8]
jmp 0x51c942
call fcn.00469680
mov ecx, dword [esp + 0x3c8]
mov dword [edi], ecx
mov dword [esp + 0x3ec], eax
mov dword [eax + 0x18], ecx
mov dword [eax + 0x24], 0
mov dword [eax + 0x20], 0
lea edi, [esp + 0x480]
xor eax, eax
call fcn.0046992b
lea ecx, [0xa2e0a4]
mov dword [esp + 0x494], ecx
mov ecx, dword [esp + 0x3ec]
mov dword [esp + 0x498], ecx
add esp, 0x464
ret
mov eax, edx
mov ecx, 0xd
call fcn.004696f0
mov eax, ecx
mov ecx, 0xd
call fcn.004696f0
mov eax, edx
mov ecx, 0xd
call fcn.004696f0
mov ecx, 0xd
call fcn.004696f0
nop
lea eax, [esp + 0x2b0]
mov dword [esp], eax
mov eax, dword [esp + 0x470]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x474]
mov dword [esp + 8], eax
call fcn.00452710
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.00452570
nop
mov eax, dword [esp + 0xc]
mov dword [esp + 0x3b4], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x5c], ecx
lea edx, [esp + 0x290]
mov dword [esp], edx
mov edx, dword [esp + 0x424]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x94]
mov dword [esp + 8], edx
call fcn.00452710
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.00452570
mov eax, dword [esp + 0xc]
mov dword [esp + 0x3b0], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x58], ecx
lea edx, [0x920300]
mov dword [esp], edx
call fcn.0040c320
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x46c]
mov dword [eax + 4], ecx
mov ecx, dword [0xe12160]
test ecx, ecx
jne 0x51ca91
mov ecx, dword [esp + 0x468]
jmp 0x51ca9f
call fcn.00469680
mov ecx, dword [esp + 0x468]
mov dword [edi], ecx
mov dword [eax], ecx
mov ecx, dword [esp + 0x5c]
mov dword [eax + 0xc], ecx
mov ecx, dword [0xe12160]
test ecx, ecx
jne 0x51cabb
mov ecx, dword [esp + 0x3b4]
jmp 0x51cac9
call fcn.00469680
mov ecx, dword [esp + 0x3b4]
mov dword [edi], ecx
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0xfc]
mov dword [eax + 0x14], ecx
mov ecx, dword [0xe12160]
test ecx, ecx
jne 0x51cae9
mov ecx, dword [esp + 0x400]
jmp 0x51caf7
call fcn.00469680
mov ecx, dword [esp + 0x400]
mov dword [edi], ecx
mov dword [eax + 0x10], ecx
mov ecx, dword [esp + 0x58]
mov dword [eax + 0x1c], ecx
mov ecx, dword [0xe12160]
test ecx, ecx
jne 0x51cb14
mov ecx, dword [esp + 0x3b0]
jmp 0x51cb22
call fcn.00469680
mov ecx, dword [esp + 0x3b0]
mov dword [edi], ecx
mov dword [esp + 0x3e0], eax
mov dword [eax + 0x18], ecx
mov dword [eax + 0x24], 0
mov dword [eax + 0x20], 0
lea edi, [esp + 0x480]
xor eax, eax
call fcn.0046992b
lea ecx, [0xa2e0a4]
mov dword [esp + 0x494], ecx
mov ecx, dword [esp + 0x3e0]
mov dword [esp + 0x498], ecx
add esp, 0x464
ret
mov dword [esp + 0x90], edi
mov dword [esp + 0x3f8], ecx
mov dword [esp], 0
lea eax, [0x961d64]
mov dword [esp + 4], eax
mov dword [esp + 8], 2
mov eax, dword [esp + 0x40c]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
lea eax, [0x96b7d3]
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], 0xd
call fcn.00452370
nop
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x418], eax
mov ecx, dword [esp + 0x20]
mov dword [esp + 0xcc], ecx
lea edx, [esp + 0x2f0]
mov dword [esp], edx
mov edx, dword [esp + 0x470]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x474]
mov dword [esp + 8], edx
call fcn.00452710
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.00452570
nop
mov eax, dword [esp + 0xc]
mov dword [esp + 0x3bc], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x64], ecx
lea edx, [esp + 0x2d0]
mov dword [esp], edx
mov edx, dword [esp + 0x3f8]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x90]
mov dword [esp + 8], edx
call fcn.00452710
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.00452570
mov eax, dword [esp + 0xc]
mov dword [esp + 0x3b8], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x60], ecx
lea edx, [0x920300]
mov dword [esp], edx
call fcn.0040c320
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x46c]
mov dword [eax + 4], ecx
mov ecx, dword [0xe12160]
test ecx, ecx
jne 0x51cca6
mov ecx, dword [esp + 0x468]
jmp 0x51ccb4
call fcn.00469680
mov ecx, dword [esp + 0x468]
mov dword [edi], ecx
mov dword [eax], ecx
mov ecx, dword [esp + 0x64]
mov dword [eax + 0xc], ecx
mov ecx, dword [0xe12160]
test ecx, ecx
jne 0x51ccd0
mov ecx, dword [esp + 0x3bc]
jmp 0x51ccde
call fcn.00469680
mov ecx, dword [esp + 0x3bc]
mov dword [edi], ecx
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0xfc]
mov dword [eax + 0x14], ecx
mov ecx, dword [0xe12160]
test ecx, ecx
jne 0x51ccfe
mov ecx, dword [esp + 0x400]
jmp 0x51cd0c
call fcn.00469680
mov ecx, dword [esp + 0x400]
mov dword [edi], ecx
mov dword [eax + 0x10], ecx
mov ecx, dword [esp + 0x60]
mov dword [eax + 0x1c], ecx
mov ecx, dword [0xe12160]
test ecx, ecx
jne 0x51cd29
mov ecx, dword [esp + 0x3b8]
jmp 0x51cd37
call fcn.00469680
mov ecx, dword [esp + 0x3b8]
mov dword [edi], ecx
mov dword [eax + 0x18], ecx
mov ecx, dword [esp + 0xcc]
mov dword [eax + 0x24], ecx
mov ecx, dword [0xe12160]
test ecx, ecx
jne 0x51cd57
mov ecx, dword [esp + 0x418]
jmp 0x51cd65
call fcn.00469680
mov ecx, dword [esp + 0x418]
mov dword [edi], ecx
mov dword [esp + 0x3e4], eax
mov dword [eax + 0x20], ecx
lea edi, [esp + 0x480]
xor eax, eax
call fcn.0046992b
lea ecx, [0xa2e0a4]
mov dword [esp + 0x494], ecx
mov ecx, dword [esp + 0x3e4]
mov dword [esp + 0x498], ecx
add esp, 0x464
ret
mov dword [esp + 0xa8], ebp
mov dword [esp + 0xa0], ecx
mov ecx, edx
mov dword [esp + 0x40c], edi
mov dword [esp + 0xb4], esi
mov edx, dword [esp + 0xfc]
mov ebp, dword [esp + 0x424]
mov esi, dword [esp + 0x94]
mov edi, ebx
mov ebx, eax
mov eax, dword [esp + 0x3f4]
jmp 0x51b614
inc edx
cmp edx, ecx
jge 0x51cdf3
movzx ebx, byte [edx + eax]
add ebx, 0xffffffd0
cmp bl, 9
jbe 0x51cde2
mov dword [esp + 0xbc], edx
lea ebx, [0xa2ca68]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
call fcn.00526350
mov eax, dword [esp + 0xbc]
mov ecx, dword [esp + 0xa4]
cmp eax, ecx
ja 0x51ce57
sub ecx, eax
mov ebx, ecx
neg ecx
sar ecx, 0x1f
and eax, ecx
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x408]
lea edx, [eax + ecx]
mov edi, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0xf4]
jmp 0x51cd9f
call fcn.00469750
inc edx
mov dword [esp + 0xd8], edx
mov edx, dword [esp + 0xfc]
mov edx, dword [esp + 0xd8]
cmp edx, 2
jge 0x51cea8
cmp ecx, 0x10a
jne 0x51ce5c
test esi, esi
je 0x51ce5c
cmp byte [ebp], 0x20
jne 0x51ce5c
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 0x51ce5c
xor edx, edx
xor edx, edx
mov dword [esp + 0x7c], edx
xor edx, edx
jmp 0x51ced4
mov ebx, dword [esp + 0x7c]
lea ebx, [ebx + ebx*4]
movzx eax, al
inc edx
lea eax, [eax + ebx*2]
mov ebx, dword [esp + 0x94]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x400]
cmp edx, 3
jge 0x51cef4
cmp edx, esi
jge 0x51cef0
movzx eax, byte [edx + ebp]
add eax, 0xffffffd0
cmp al, 9
jbe 0x51ceb4
mov eax, dword [esp + 0x400]
test edx, edx
je 0x51cf01
cmp ecx, 0x10b
jne 0x51cf0b
cmp edx, 3
je 0x51cf0b
mov ecx, dword [0xdc3bb8]
xor edx, edx
jmp 0x51cf22
cmp edx, esi
ja 0x51cf50
sub esi, edx
mov ecx, esi
neg ecx
sar ecx, 0x1f
and ecx, edx
add ebp, ecx
mov edx, dword [esp + 0x7c]
xor ecx, ecx
mov dword [esp + 0x8c], edx
mov eax, dword [esp + 0x3f4]
mov ebx, ecx
mov edi, esi
mov ecx, ebp
mov edx, dword [esp + 0xfc]
mov ebp, dword [esp + 0x424]
mov esi, dword [esp + 0x94]
jmp 0x51b614
mov eax, edx
mov ecx, esi
call fcn.00469750
mov ecx, ebx
mov dword [esp + 0xd4], ecx
lea ebx, [ecx + 1]
cmp esi, ebx
jle 0x51cf82
jbe 0x51d019
movzx edi, byte [ecx + ebp + 1]
xchg edi, eax
cmp al, 0x30
xchg edi, eax
jb 0x51cf82
xchg edi, eax
cmp al, 0x39
xchg edi, eax
jbe 0x51cf59
mov dword [esp + 0xec], ebx
lea eax, [0xa2ca68]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
mov dword [esp + 0xc], ebx
call fcn.00526350
mov ecx, dword [esp + 0x94]
mov eax, dword [esp + 0xec]
cmp ecx, eax
jb 0x51d014
mov edx, dword [esp + 0xd4]
sub ecx, edx
lea edi, [ecx - 1]
mov ecx, edi
neg ecx
sar ecx, 0x1f
and eax, ecx
mov ebx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
mov ebp, dword [esp + 0x424]
add eax, ebp
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov dword [esp + 0xa8], esi
mov dword [esp + 0x40c], edx
mov dword [esp + 0xb4], ecx
mov edx, dword [esp + 0xfc]
mov esi, dword [esp + 0x94]
mov ecx, eax
mov eax, dword [esp + 0x3f4]
jmp 0x51b614
call fcn.00469750
mov eax, ebx
mov ecx, esi
call fcn.004696f0
call fcn.00469710
mov eax, edx
call fcn.00469750
call fcn.00469710
nop
call fcn.00468280
jmp fcn.0051a550