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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x120]
cmp eax, dword [ecx + 8]
jbe 0x50c565
sub esp, 0x1a0
mov eax, dword [esp + 0x1ac]
test eax, eax
jne 0x509d6b
mov ecx, dword [esp + 0x1bc]
test ecx, ecx
je 0x509c14
test ecx, 0x200
jne 0x509c14
lea eax, [0x663100]
mov ecx, dword [esp + 0x1b4]
jmp 0x509c3a
mov eax, dword [esp + 0x1b4]
mov dword [esp], eax
mov eax, dword [esp + 0x1b8]
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.004be9f0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x144], ecx
mov dword [esp + 0x7c], eax
mov dword [esp + 0x190], 0
mov dword [esp + 0x194], 0
mov dword [esp + 0x198], 0
mov dword [esp + 0x19c], 0
mov edx, dword [esp + 0x1a8]
mov dword [esp], edx
mov edx, dword [esp + 0x1ac]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x1b0]
mov dword [esp + 8], edx
call fcn.00409700
mov eax, dword [esp + 0xc]
lea ecx, [0x5dc060]
mov dword [esp + 0x190], ecx
mov dword [esp + 0x194], eax
mov eax, dword [esp + 0x7c]
test eax, eax
je 0x509cb9
mov eax, dword [eax + 4]
mov dword [esp + 0x198], eax
mov eax, dword [esp + 0x144]
mov dword [esp + 0x19c], eax
lea eax, [0x61d922]
mov dword [esp], eax
mov dword [esp + 4], 0x47
lea eax, [esp + 0x190]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 2
mov dword [esp + 0x10], 2
call fcn.004c4b50
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1a4]
mov ebx, dword [edx + 0x3c]
test ebx, ebx
jne 0x509d4e
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.00506490
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x1a4]
mov dword [edx + 0x3c], ecx
mov ecx, dword [0x7c78f0]
test ecx, ecx
jne 0x509d46
mov dword [edx + 0x40], eax
jmp 0x509d4e
lea edi, [edx + 0x40]
call fcn.00463730
mov dword [esp + 0x1c4], 0
mov dword [esp + 0x1c8], 0
add esp, 0x1a0
ret
mov eax, dword [esp + 0x1a8]
cmp byte [eax], 0x6e
sete cl
mov edx, dword [esp + 0x1b4]
mov dword [esp], edx
mov ebx, dword [esp + 0x1b8]
mov dword [esp + 4], ebx
mov ebp, dword [esp + 0x1bc]
mov dword [esp + 8], ebp
mov byte [esp + 0xc], cl
call fcn.00506b60
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x28]
test edx, edx
jne 0x50c4d1
test ebp, ebp
je 0x50a2ba
mov eax, dword [esp + 0x1a8]
movzx ecx, byte [eax]
cmp cl, 0x22
je 0x50a0fd
movzx edx, byte [esp + 0x1c0]
test dl, dl
je 0x509f69
mov ecx, dword [esp + 0x1bc]
test ecx, ecx
je 0x509e12
test ecx, 0x200
jne 0x509e12
lea eax, [0x663100]
mov ecx, dword [esp + 0x1b4]
jmp 0x509e38
mov eax, dword [esp + 0x1b4]
mov dword [esp], eax
mov eax, dword [esp + 0x1b8]
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.004be9f0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x140], ecx
mov dword [esp + 0x78], eax
mov dword [esp + 0x190], 0
mov dword [esp + 0x194], 0
mov dword [esp + 0x198], 0
mov dword [esp + 0x19c], 0
mov edx, dword [esp + 0x1a8]
mov dword [esp], edx
mov edx, dword [esp + 0x1ac]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x1b0]
mov dword [esp + 8], edx
call fcn.00409700
mov eax, dword [esp + 0xc]
lea ecx, [0x5dc060]
mov dword [esp + 0x190], ecx
mov dword [esp + 0x194], eax
mov eax, dword [esp + 0x78]
test eax, eax
je 0x509eb7
mov eax, dword [eax + 4]
mov dword [esp + 0x198], eax
mov eax, dword [esp + 0x140]
mov dword [esp + 0x19c], eax
lea eax, [0x61d922]
mov dword [esp], eax
mov dword [esp + 4], 0x47
lea eax, [esp + 0x190]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 2
mov dword [esp + 0x10], 2
call fcn.004c4b50
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1a4]
mov ebx, dword [edx + 0x3c]
test ebx, ebx
jne 0x509f4c
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.00506490
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x1a4]
mov dword [edx + 0x3c], ecx
mov ecx, dword [0x7c78f0]
test ecx, ecx
jne 0x509f44
mov dword [edx + 0x40], eax
jmp 0x509f4c
lea edi, [edx + 0x40]
call fcn.00463730
mov dword [esp + 0x1c4], 0
mov dword [esp + 0x1c8], 0
add esp, 0x1a0
ret
cmp cl, 0x66
je 0x509f85
cmp cl, 0x6e
jne 0x509f80
lea eax, [0x60b8d8]
mov ecx, 4
jmp 0x509f9d
cmp cl, 0x74
jne 0x509f92
lea eax, [0x60b844]
mov ecx, 4
jmp 0x509f9d
lea eax, [0x60be2c]
mov ecx, 6
mov dword [esp + 0x148], eax
mov dword [esp + 0x84], ecx
mov edx, dword [esp + 0x1bc]
test edx, edx
je 0x509fcd
test edx, 0x200
jne 0x509fcd
mov edx, dword [esp + 0x1b4]
lea ebx, [0x663100]
jmp 0x509ff7
mov eax, dword [esp + 0x1b4]
mov dword [esp], eax
mov eax, dword [esp + 0x1b8]
mov dword [esp + 4], eax
mov dword [esp + 8], edx
call fcn.004be9f0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, ecx
mov ebx, eax
mov dword [esp + 0x13c], edx
mov dword [esp + 0x74], ebx
mov eax, dword [esp + 0x1a4]
mov ecx, dword [eax + 0xc]
mov dword [esp + 0xd4], ecx
lea ebp, [0x5f7580]
mov dword [esp], ebp
call fcn.0040bd40
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x84]
mov dword [edi + 4], eax
mov eax, dword [0x7c78f0]
test eax, eax
jne 0x50a044
mov ecx, dword [esp + 0x148]
mov dword [edi], ecx
jmp 0x50a050
mov eax, dword [esp + 0x148]
call fcn.00463730
mov ecx, dword [esp + 0x74]
mov dword [edi + 8], ecx
mov ecx, dword [0x7c78f0]
test ecx, ecx
jne 0x50a06d
mov eax, dword [esp + 0x13c]
mov dword [edi + 0xc], eax
jmp 0x50a082
lea ecx, [edi + 0xc]
mov eax, dword [esp + 0x13c]
mov edx, edi
mov edi, ecx
call fcn.00463730
mov edi, edx
mov eax, dword [esp + 0xd4]
dec eax
mov dword [edi + 0x10], eax
sar eax, 0x1f
mov dword [edi + 0x14], eax
mov eax, dword [esp + 0x1a4]
mov ecx, dword [eax + 0x3c]
test ecx, ecx
jne 0x50a0e0
mov dword [esp], eax
lea ecx, [0x661a6c]
mov dword [esp + 4], ecx
mov dword [esp + 8], edi
call fcn.00506490
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x1a4]
mov dword [edx + 0x3c], ecx
mov ecx, dword [0x7c78f0]
test ecx, ecx
jne 0x50a0d8
mov dword [edx + 0x40], eax
jmp 0x50a0e0
lea edi, [edx + 0x40]
call fcn.00463730
mov dword [esp + 0x1c4], 0
mov dword [esp + 0x1c8], 0
add esp, 0x1a0
ret
mov dword [esp + 0x14c], esi
mov dword [esp + 0x88], ebp
mov dword [esp], eax
mov ecx, dword [esp + 0x1ac]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x1b0]
mov dword [esp + 8], edx
call fcn.0050cd20
movzx eax, byte [esp + 0x18]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
test al, al
jne 0x50a27b
movzx eax, byte [esp + 0x1c0]
test al, al
je 0x50c54c
mov eax, dword [esp + 0x1bc]
test eax, eax
je 0x50a173
test eax, 0x200
jne 0x50a173
lea eax, [0x663100]
mov ecx, dword [esp + 0x1b4]
jmp 0x50a199
mov ecx, dword [esp + 0x1b4]
mov dword [esp], ecx
mov ecx, dword [esp + 0x1b8]
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.004be9f0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x138], ecx
mov dword [esp + 0x70], eax
mov dword [esp + 0x190], 0
mov dword [esp + 0x194], 0
mov dword [esp + 0x198], 0
mov dword [esp + 0x19c], 0
mov edx, dword [esp + 0x1a8]
mov dword [esp], edx
mov edx, dword [esp + 0x1ac]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x1b0]
mov dword [esp + 8], edx
call fcn.00409700
mov eax, dword [esp + 0xc]
lea ecx, [0x5dc060]
mov dword [esp + 0x190], ecx
mov dword [esp + 0x194], eax
mov eax, dword [esp + 0x70]
test eax, eax
je 0x50a218
mov eax, dword [eax + 4]
mov dword [esp + 0x198], eax
mov eax, dword [esp + 0x138]
mov dword [esp + 0x19c], eax
lea eax, [0x61d922]
mov dword [esp], eax
mov dword [esp + 4], 0x47
lea eax, [esp + 0x190]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 2
mov dword [esp + 0x10], 2
call fcn.004c4b50
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x1c4], eax
mov dword [esp + 0x1c8], ecx
add esp, 0x1a0
ret
mov eax, dword [esp + 0x88]
mov eax, dword [eax + 0x10]
mov ebp, dword [esp + 0x14c]
mov dword [esp], ebp
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebx
call eax
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x1c4], eax
mov dword [esp + 0x1c8], ecx
add esp, 0x1a0
ret
mov dword [esp + 0x16c], ecx
mov dword [esp + 0x168], eax
mov dword [esp + 0xb0], edi
mov edx, dword [esp + 0x1a8]
movzx ebx, byte [edx]
cmp bl, 0x66
ja 0x50ac86
cmp bl, 0x22
je 0x50a2f5
cmp bl, 0x66
je 0x50aea2
jmp 0x50b4eb
mov dword [esp], edx
mov eax, dword [esp + 0x1ac]
mov dword [esp + 4], eax
mov ecx, dword [esp + 0x1b0]
mov dword [esp + 8], ecx
call fcn.0050cd20
movzx eax, byte [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0xc]
test al, al
je 0x50ab4d
mov dword [esp + 0x90], edx
mov dword [esp + 0x154], ebx
nop
nop
mov eax, dword [esp + 0xb0]
mov ebp, eax
and eax, 0x1f
cmp eax, 0x14
je 0x50a926
cmp eax, 0x17
jne 0x50a633
mov dword [esp + 0x94], ecx
test ebp, 0x200
jne 0x50a378
lea eax, [0x663100]
mov esi, dword [esp + 0x168]
jmp 0x50a3a0
mov eax, dword [esp + 0x168]
mov dword [esp], eax
mov ecx, dword [esp + 0x16c]
mov dword [esp + 4], ecx
mov dword [esp + 8], ebp
call fcn.004be9f0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov esi, ecx
mov eax, dword [eax + 0x28]
mov dword [esp], esi
call eax
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov eax, dword [eax + 0x50]
mov dword [esp], ecx
call eax
cmp dword [esp + 4], 8
je 0x50a4dd
mov eax, dword [esp + 0xb0]
test eax, 0x200
jne 0x50a3e0
mov ecx, dword [esp + 0x168]
lea eax, [0x663100]
jmp 0x50a406
mov ecx, dword [esp + 0x168]
mov dword [esp], ecx
mov ecx, dword [esp + 0x16c]
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.004be9f0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x50], eax
mov dword [esp + 0x118], ecx
mov edx, dword [esp + 0x1a4]
mov ebx, dword [edx + 0xc]
mov dword [esp + 0xd4], ebx
lea ebp, [0x5f7580]
mov dword [esp], ebp
call fcn.0040bd40
mov eax, dword [esp + 4]
mov dword [eax + 4], 6
lea ecx, [0x60be98]
mov dword [eax], ecx
mov ecx, dword [esp + 0x50]
mov dword [eax + 8], ecx
mov ecx, dword [0x7c78f0]
test ecx, ecx
jne 0x50a460
mov ecx, dword [esp + 0x118]
mov dword [eax + 0xc], ecx
jmp 0x50a473
lea edi, [eax + 0xc]
mov ecx, eax
mov eax, dword [esp + 0x118]
call fcn.00463730
mov eax, ecx
mov ecx, dword [esp + 0xd4]
dec ecx
mov dword [eax + 0x10], ecx
sar ecx, 0x1f
mov dword [eax + 0x14], ecx
mov ecx, dword [esp + 0x1a4]
mov edx, dword [ecx + 0x3c]
test edx, edx
jne 0x50c4b4
mov dword [esp], ecx
lea edx, [0x661a6c]
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call fcn.00506490
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x1a4]
mov dword [edx + 0x3c], ecx
mov ecx, dword [0x7c78f0]
test ecx, ecx
jne 0x50a4d0
mov dword [edx + 0x40], eax
jmp 0x50c4b4
lea edi, [edx + 0x40]
call fcn.00463730
jmp 0x50c4b4
mov eax, dword [0x7a081c]
cmp dword [eax + 0x140], 0xffffffff
jne 0x50a508
mov eax, dword [esp + 0x90]
lea ecx, [eax + eax*2]
mov edx, ecx
shl ecx, 1
sar ecx, 0x1f
shr ecx, 0x1d
lea ecx, [ecx + edx*2]
sar ecx, 3
jmp 0x50a515
mov eax, dword [esp + 0x90]
shr eax, 2
lea ecx, [eax + eax*2]
mov dword [esp + 0x80], ecx
lea eax, [0x5e2160]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], ecx
call fcn.0044a130
mov eax, dword [esp + 0xc]
mov dword [esp + 0x164], eax
mov ecx, dword [0x7a081c]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov ecx, dword [esp + 0x80]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ecx
mov edx, dword [esp + 0x154]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x90]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x94]
mov dword [esp + 0x18], edx
call fcn.00505570
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov ebx, dword [esp + 0x20]
test ebx, ebx
je 0x50a5e7
nop
mov ecx, dword [esp + 0x1a4]
mov ebx, dword [ecx + 0x3c]
test ebx, ebx
jne 0x50c4b4
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], edx
call fcn.00506490
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x1a4]
mov dword [edx + 0x3c], ecx
mov ecx, dword [0x7c78f0]
test ecx, ecx
jne 0x50a5da
mov dword [edx + 0x40], eax
jmp 0x50c4b4
lea edi, [edx + 0x40]
call fcn.00463730
jmp 0x50c4b4
mov edx, dword [esp + 0x80]
cmp edx, ecx
jb 0x50c547
mov eax, dword [esp + 0x168]
mov dword [esp], eax
mov eax, dword [esp + 0x16c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x164]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
call fcn.004bdba0
jmp 0x50c4b4
cmp eax, 0x18
jne 0x50a80e
test ebp, 0x200
jne 0x50a653
lea eax, [0x663100]
mov ecx, dword [esp + 0x168]
jmp 0x50a68e
mov eax, dword [esp + 0x168]
mov dword [esp], eax
mov ecx, dword [esp + 0x16c]
mov dword [esp + 4], ecx
mov dword [esp + 8], ebp
call fcn.004be9f0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x90]
mov ebx, dword [esp + 0x154]
mov ebp, dword [esp + 0xb0]
mov esi, dword [0x7a16e4]
cmp dword [0x7a16e0], eax
je 0x50a6a3
xor eax, eax
jmp 0x50a72b
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], esi
call fcn.00403850
movzx eax, byte [esp + 0xc]
test al, al
jne 0x50a6d5
mov edx, dword [esp + 0x90]
mov ebx, dword [esp + 0x154]
mov ebp, dword [esp + 0xb0]
xor eax, eax
jmp 0x50a72b
lea eax, [esp + 0xd8]
mov dword [esp], eax
mov eax, dword [esp + 0x154]
mov dword [esp + 4], eax
mov ecx, dword [esp + 0x90]
mov dword [esp + 8], ecx
call fcn.0044dec0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0050fea0
movzx eax, byte [esp + 8]
xor eax, 1
mov edx, dword [esp + 0x90]
mov ebx, dword [esp + 0x154]
mov ebp, dword [esp + 0xb0]
test al, al
jne 0x50a76d
mov dword [esp], 0
mov dword [esp + 4], ebx
mov dword [esp + 8], edx
call fcn.0044dec0
mov eax, dword [esp + 0x168]
mov dword [esp], eax
mov eax, dword [esp + 0x16c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 8], eax
call fcn.004be580
jmp 0x50c4b4
mov dword [esp + 0x188], 0
mov dword [esp + 0x18c], 0
mov eax, dword [esp + 0x1a8]
mov dword [esp], eax
mov eax, dword [esp + 0x1ac]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x1b0]
mov dword [esp + 8], eax
call fcn.00409700
mov eax, dword [esp + 0xc]
lea ecx, [0x5dc060]
mov dword [esp + 0x188], ecx
mov dword [esp + 0x18c], eax
lea eax, [0x61d4f0]
mov dword [esp], eax
mov dword [esp + 4], 0x40
lea eax, [esp + 0x188]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 1
call fcn.004c4b50
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x1c4], eax
mov dword [esp + 0x1c8], ecx
add esp, 0x1a0
ret
test ebp, ebp
je 0x50a829
test ebp, 0x200
jne 0x50a829
mov ecx, dword [esp + 0x168]
lea eax, [0x663100]
jmp 0x50a84f
mov eax, dword [esp + 0x168]
mov dword [esp], eax
mov eax, dword [esp + 0x16c]
mov dword [esp + 4], eax
mov dword [esp + 8], ebp
call fcn.004be9f0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x11c], ecx
mov dword [esp + 0x54], eax
mov edx, dword [esp + 0x1a4]
mov ebx, dword [edx + 0xc]
mov dword [esp + 0xd4], ebx
lea ebp, [0x5f7580]
mov dword [esp], ebp
call fcn.0040bd40
mov eax, dword [esp + 4]
mov dword [eax + 4], 6
lea ecx, [0x60be98]
mov dword [eax], ecx
mov ecx, dword [esp + 0x54]
mov dword [eax + 8], ecx
mov ecx, dword [0x7c78f0]
test ecx, ecx
jne 0x50a8a9
mov ecx, dword [esp + 0x11c]
mov dword [eax + 0xc], ecx
jmp 0x50a8bc
lea edi, [eax + 0xc]
mov ecx, eax
mov eax, dword [esp + 0x11c]
call fcn.00463730
mov eax, ecx
mov ecx, dword [esp + 0xd4]
dec ecx
mov dword [eax + 0x10], ecx
sar ecx, 0x1f
mov dword [eax + 0x14], ecx
mov ecx, dword [esp + 0x1a4]
mov edx, dword [ecx + 0x3c]
test edx, edx
jne 0x50c4b4
mov dword [esp], ecx
lea edx, [0x661a6c]
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call fcn.00506490
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x1a4]
mov dword [edx + 0x3c], ecx
mov ecx, dword [0x7c78f0]
test ecx, ecx
jne 0x50a919
mov dword [edx + 0x40], eax
jmp 0x50c4b4
lea edi, [edx + 0x40]
call fcn.00463730
jmp 0x50c4b4
mov eax, dword [esp + 0x168]
mov dword [esp], eax
mov ecx, dword [esp + 0x16c]
mov dword [esp + 4], ecx
mov dword [esp + 8], ebp
call fcn.004bd6e0
mov eax, dword [esp + 0xc]
test eax, eax
je 0x50aa6a
mov eax, dword [esp + 0xb0]
test eax, 0x200
jne 0x50a96d
mov ecx, dword [esp + 0x168]
lea eax, [0x663100]
jmp 0x50a993
mov ecx, dword [esp + 0x168]
mov dword [esp], ecx
mov ecx, dword [esp + 0x16c]
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.004be9f0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x114], ecx
mov edx, dword [esp + 0x1a4]
mov ebx, dword [edx + 0xc]
mov dword [esp + 0xd4], ebx
lea ebp, [0x5f7580]
mov dword [esp], ebp
call fcn.0040bd40
mov eax, dword [esp + 4]
mov dword [eax + 4], 6
lea ecx, [0x60be98]
mov dword [eax], ecx
mov ecx, dword [esp + 0x4c]
mov dword [eax + 8], ecx
mov ecx, dword [0x7c78f0]
test ecx, ecx
jne 0x50a9ed
mov ecx, dword [esp + 0x114]
mov dword [eax + 0xc], ecx
jmp 0x50aa00
lea edi, [eax + 0xc]
mov ecx, eax
mov eax, dword [esp + 0x114]
call fcn.00463730
mov eax, ecx
mov ecx, dword [esp + 0xd4]
dec ecx
mov dword [eax + 0x10], ecx
sar ecx, 0x1f
mov dword [eax + 0x14], ecx
mov ecx, dword [esp + 0x1a4]
mov edx, dword [ecx + 0x3c]
test edx, edx
jne 0x50c4b4
mov dword [esp], ecx
lea edx, [0x661a6c]
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call fcn.00506490
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x1a4]
mov dword [edx + 0x3c], ecx
mov ecx, dword [0x7c78f0]
test ecx, ecx
jne 0x50aa5d
mov dword [edx + 0x40], eax
jmp 0x50c4b4
lea edi, [edx + 0x40]
call fcn.00463730
jmp 0x50c4b4
mov dword [esp], 0
mov eax, dword [esp + 0x154]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x90]
mov dword [esp + 8], eax
call fcn.0044dec0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00409680
mov eax, dword [esp + 8]
nop
movzx ecx, byte [0x7a1de0]
test cl, cl
je 0x50aadb
lea ecx, [0x5e1fa0]
mov dword [0x7a1de4], ecx
mov edx, dword [0x7c78f0]
test edx, edx
jne 0x50aace
mov dword [0x7a1de8], eax
jmp 0x50aae1
lea edi, [0x7a1de8]
call fcn.00463730
jmp 0x50aae1
lea ecx, [0x5e1fa0]
mov dword [esp + 0x178], ecx
mov dword [esp + 0x17c], eax
mov ecx, dword [esp + 0x178]
test ecx, ecx
je 0x50ab11
nop
movzx edx, byte [ecx + 0xf]
mov ebx, edx
and edx, 0x1f
test bl, 0x20
jne 0x50ab17
or edx, 0x80
jmp 0x50ab17
xor edx, edx
xor ecx, ecx
xor eax, eax
mov ebx, dword [esp + 0x168]
mov dword [esp], ebx
mov ebx, dword [esp + 0x16c]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0xb0]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
call fcn.004bd9d0
jmp 0x50c4b4
movzx eax, byte [esp + 0x1c0]
test al, al
je 0x50c52f
mov eax, dword [esp + 0xb0]
test eax, eax
je 0x50ab7e
test eax, 0x200
jne 0x50ab7e
lea eax, [0x663100]
mov ecx, dword [esp + 0x168]
jmp 0x50aba4
mov ecx, dword [esp + 0x168]
mov dword [esp], ecx
mov ecx, dword [esp + 0x16c]
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.004be9f0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x120], ecx
mov dword [esp + 0x58], eax
mov dword [esp + 0x190], 0
mov dword [esp + 0x194], 0
mov dword [esp + 0x198], 0
mov dword [esp + 0x19c], 0
mov edx, dword [esp + 0x1a8]
mov dword [esp], edx
mov edx, dword [esp + 0x1ac]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x1b0]
mov dword [esp + 8], edx
call fcn.00409700
mov eax, dword [esp + 0xc]
lea ecx, [0x5dc060]
mov dword [esp + 0x190], ecx
mov dword [esp + 0x194], eax
mov eax, dword [esp + 0x58]
test eax, eax
je 0x50ac23
mov eax, dword [eax + 4]
mov dword [esp + 0x198], eax
mov eax, dword [esp + 0x120]
mov dword [esp + 0x19c], eax
lea eax, [0x61d922]
mov dword [esp], eax
mov dword [esp + 4], 0x47
lea eax, [esp + 0x190]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 2
mov dword [esp + 0x10], 2
call fcn.004c4b50
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x1c4], eax
mov dword [esp + 0x1c8], ecx
add esp, 0x1a0
ret
cmp bl, 0x6e
jne 0x50ae99
movzx ebx, byte [esp + 0x1c0]
test bl, bl
je 0x50ae0d
mov ebx, dword [esp + 0x1ac]
cmp ebx, 4
jne 0x50acb7
cmp dword [edx], 0x6c6c756e
je 0x50ae0d
test edi, edi
je 0x50accb
test edi, 0x200
jne 0x50accb
lea ecx, [0x663100]
jmp 0x50acf7
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edi
call fcn.004be9f0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x1a8]
mov ebx, dword [esp + 0x1ac]
mov ebp, ecx
mov ecx, eax
mov eax, ebp
mov dword [esp + 0x134], eax
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x190], 0
mov dword [esp + 0x194], 0
mov dword [esp + 0x198], 0
mov dword [esp + 0x19c], 0
mov dword [esp], edx
mov dword [esp + 4], ebx
mov edx, dword [esp + 0x1b0]
mov dword [esp + 8], edx
call fcn.00409700
mov eax, dword [esp + 0xc]
lea ecx, [0x5dc060]
mov dword [esp + 0x190], ecx
mov dword [esp + 0x194], eax
mov eax, dword [esp + 0x6c]
test eax, eax
je 0x50ad6a
mov ecx, dword [eax + 4]
jmp 0x50ad6c
mov ecx, eax
mov dword [esp + 0x198], ecx
mov eax, dword [esp + 0x134]
mov dword [esp + 0x19c], eax
lea eax, [0x61d922]
mov dword [esp], eax
mov dword [esp + 4], 0x47
lea eax, [esp + 0x190]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 2
mov dword [esp + 0x10], 2
call fcn.004c4b50
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1a4]
mov ebx, dword [edx + 0x3c]
test ebx, ebx
jne 0x50c4b4
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.00506490
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x1a4]
mov dword [edx + 0x3c], ecx
mov ecx, dword [0x7c78f0]
test ecx, ecx
jne 0x50ae00
mov dword [edx + 0x40], eax
jmp 0x50c4b4
lea edi, [edx + 0x40]
call fcn.00463730
jmp 0x50c4b4
nop
mov edx, edi
and edi, 0x1f
lea ebx, [edi - 0x14]
cmp ebx, 3
ja 0x50c4b4
test edx, 0x200
jne 0x50ae2f
lea ebx, [0x663100]
jmp 0x50ae4b
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.004be9f0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov ebx, eax
mov eax, ecx
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.004bf750
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x168]
mov dword [esp], ebx
mov ebx, dword [esp + 0x16c]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0xb0]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
call fcn.004bd9d0
jmp 0x50c4b4
cmp bl, 0x74
jne 0x50b4eb
movzx ebp, byte [esp + 0x1c0]
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x50b039
mov esi, dword [esp + 0x1ac]
cmp esi, 4
jne 0x50aecc
cmp dword [edx], 0x65757274
je 0x50b040
cmp esi, 5
jne 0x50aee3
cmp dword [edx], 0x736c6166
jne 0x50aee3
cmp byte [edx + 4], 0x65
je 0x50b040
test edi, edi
je 0x50aef7
test edi, 0x200
jne 0x50aef7
lea ecx, [0x663100]
jmp 0x50af23
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edi
call fcn.004be9f0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x1a8]
mov esi, dword [esp + 0x1ac]
mov ebx, ecx
mov ecx, eax
mov eax, ebx
mov dword [esp + 0x130], eax
mov dword [esp + 0x68], ecx
mov dword [esp + 0x190], 0
mov dword [esp + 0x194], 0
mov dword [esp + 0x198], 0
mov dword [esp + 0x19c], 0
mov dword [esp], edx
mov dword [esp + 4], esi
mov edx, dword [esp + 0x1b0]
mov dword [esp + 8], edx
call fcn.00409700
mov eax, dword [esp + 0xc]
lea ecx, [0x5dc060]
mov dword [esp + 0x190], ecx
mov dword [esp + 0x194], eax
mov eax, dword [esp + 0x68]
test eax, eax
je 0x50af96
mov ecx, dword [eax + 4]
jmp 0x50af98
mov ecx, eax
mov dword [esp + 0x198], ecx
mov eax, dword [esp + 0x130]
mov dword [esp + 0x19c], eax
lea eax, [0x61d922]
mov dword [esp], eax
mov dword [esp + 4], 0x47
lea eax, [esp + 0x190]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 2
mov dword [esp + 0x10], 2
call fcn.004c4b50
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1a4]
mov ebx, dword [edx + 0x3c]
test ebx, ebx
jne 0x50c4b4
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.00506490
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x1a4]
mov dword [edx + 0x3c], ecx
mov ecx, dword [0x7c78f0]
test ecx, ecx
jne 0x50b02c
mov dword [edx + 0x40], eax
jmp 0x50c4b4
lea edi, [edx + 0x40]
call fcn.00463730
jmp 0x50c4b4
mov esi, dword [esp + 0x1ac]
cmp bl, 0x74
sete bl
nop
nop
and edi, 0x1f
cmp edi, 1
je 0x50b4cb
cmp edi, 0x14
je 0x50b2d0
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x50b1c4
mov ebx, dword [esp + 0xb0]
test ebx, ebx
je 0x50b082
test ebx, 0x200
jne 0x50b082
lea ecx, [0x663100]
jmp 0x50b0ae
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
call fcn.004be9f0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x1a8]
mov esi, dword [esp + 0x1ac]
mov ebx, ecx
mov ecx, eax
mov eax, ebx
mov dword [esp + 0x12c], eax
mov dword [esp + 0x64], ecx
mov dword [esp + 0x190], 0
mov dword [esp + 0x194], 0
mov dword [esp + 0x198], 0
mov dword [esp + 0x19c], 0
mov dword [esp], edx
mov dword [esp + 4], esi
mov edx, dword [esp + 0x1b0]
mov dword [esp + 8], edx
call fcn.00409700
mov eax, dword [esp + 0xc]
lea ecx, [0x5dc060]
mov dword [esp + 0x190], ecx
mov dword [esp + 0x194], eax
mov eax, dword [esp + 0x64]
test eax, eax
je 0x50b121
mov ecx, dword [eax + 4]
jmp 0x50b123
mov ecx, eax
mov dword [esp + 0x198], ecx
mov eax, dword [esp + 0x12c]
mov dword [esp + 0x19c], eax
lea eax, [0x61d922]
mov dword [esp], eax
mov dword [esp + 4], 0x47
lea eax, [esp + 0x190]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 2
mov dword [esp + 0x10], 2
call fcn.004c4b50
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1a4]
mov ebx, dword [edx + 0x3c]
test ebx, ebx
jne 0x50c4b4
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.00506490
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x1a4]
mov dword [edx + 0x3c], ecx
mov ecx, dword [0x7c78f0]
test ecx, ecx
jne 0x50b1b7
mov dword [edx + 0x40], eax
jmp 0x50c4b4
lea edi, [edx + 0x40]
call fcn.00463730
jmp 0x50c4b4
mov edx, dword [esp + 0xb0]
test edx, edx
je 0x50b1e1
test edx, 0x200
jne 0x50b1e1
mov ecx, eax
lea eax, [0x663100]
jmp 0x50b1f9
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.004be9f0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x60], eax
mov dword [esp + 0x128], ecx
mov edx, dword [esp + 0x1a4]
mov ebx, dword [edx + 0xc]
mov dword [esp + 0xd4], ebx
lea ebp, [0x5f7580]
mov dword [esp], ebp
call fcn.0040bd40
mov eax, dword [esp + 4]
mov dword [eax + 4], 4
lea ecx, [0x60b844]
mov dword [eax], ecx
mov ecx, dword [esp + 0x60]
mov dword [eax + 8], ecx
mov ecx, dword [0x7c78f0]
test ecx, ecx
jne 0x50b253
mov ecx, dword [esp + 0x128]
mov dword [eax + 0xc], ecx
jmp 0x50b266
lea edi, [eax + 0xc]
mov ecx, eax
mov eax, dword [esp + 0x128]
call fcn.00463730
mov eax, ecx
mov ecx, dword [esp + 0xd4]
dec ecx
mov dword [eax + 0x10], ecx
sar ecx, 0x1f
mov dword [eax + 0x14], ecx
mov ecx, dword [esp + 0x1a4]
mov edx, dword [ecx + 0x3c]
test edx, edx
jne 0x50c4b4
mov dword [esp], ecx
lea edx, [0x661a6c]
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call fcn.00506490
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x1a4]
mov dword [edx + 0x3c], ecx
mov ecx, dword [0x7c78f0]
test ecx, ecx
jne 0x50b2c3
mov dword [edx + 0x40], eax
jmp 0x50c4b4
lea edi, [edx + 0x40]
call fcn.00463730
jmp 0x50c4b4
mov byte [esp + 0x2e], bl
mov dword [esp], eax
mov dword [esp + 4], ecx
mov edx, dword [esp + 0xb0]
mov dword [esp + 8], edx
call fcn.004bd6e0
mov eax, dword [esp + 0xc]
test eax, eax
jne 0x50b3b1
movzx ecx, byte [esp + 0x2e]
movzx ecx, cl
lea edx, [0x77ed40]
lea eax, [edx + ecx*8]
nop
movzx ecx, byte [0x7a1de0]
test cl, cl
je 0x50b33f
lea ecx, [0x5e0ae0]
mov dword [0x7a1de4], ecx
mov edx, dword [0x7c78f0]
test edx, edx
jne 0x50b332
mov dword [0x7a1de8], eax
jmp 0x50b345
lea edi, [0x7a1de8]
call fcn.00463730
jmp 0x50b345
lea ecx, [0x5e0ae0]
mov dword [esp + 0x180], ecx
mov dword [esp + 0x184], eax
mov ecx, dword [esp + 0x180]
test ecx, ecx
je 0x50b375
nop
movzx edx, byte [ecx + 0xf]
mov ebx, edx
and edx, 0x1f
test bl, 0x20
jne 0x50b37b
or edx, 0x80
jmp 0x50b37b
xor edx, edx
xor ecx, ecx
xor eax, eax
mov ebx, dword [esp + 0x168]
mov dword [esp], ebx
mov ebx, dword [esp + 0x16c]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0xb0]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
call fcn.004bd9d0
jmp 0x50c4b4
mov eax, dword [esp + 0xb0]
test eax, 0x200
jne 0x50b3ce
mov ecx, dword [esp + 0x168]
lea eax, [0x663100]
jmp 0x50b3f4
mov ecx, dword [esp + 0x168]
mov dword [esp], ecx
mov ecx, dword [esp + 0x16c]
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.004be9f0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x124], ecx
mov dword [esp + 0x5c], eax
mov edx, dword [esp + 0x1a4]
mov ebx, dword [edx + 0xc]
mov dword [esp + 0xd4], ebx
lea ebp, [0x5f7580]
mov dword [esp], ebp
call fcn.0040bd40
mov eax, dword [esp + 4]
mov dword [eax + 4], 4
lea ecx, [0x60b844]
mov dword [eax], ecx
mov ecx, dword [esp + 0x5c]
mov dword [eax + 8], ecx
mov ecx, dword [0x7c78f0]
test ecx, ecx
jne 0x50b44e
mov ecx, dword [esp + 0x124]
mov dword [eax + 0xc], ecx
jmp 0x50b461
lea edi, [eax + 0xc]
mov ecx, eax
mov eax, dword [esp + 0x124]
call fcn.00463730
mov eax, ecx
mov ecx, dword [esp + 0xd4]
dec ecx
mov dword [eax + 0x10], ecx
sar ecx, 0x1f
mov dword [eax + 0x14], ecx
mov ecx, dword [esp + 0x1a4]
mov edx, dword [ecx + 0x3c]
test edx, edx
jne 0x50c4b4
mov dword [esp], ecx
lea edx, [0x661a6c]
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call fcn.00506490
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x1a4]
mov dword [edx + 0x3c], ecx
mov ecx, dword [0x7c78f0]
test ecx, ecx
jne 0x50b4be
mov dword [edx + 0x40], eax
jmp 0x50c4b4
lea edi, [edx + 0x40]
call fcn.00463730
jmp 0x50c4b4
mov dword [esp], eax
mov dword [esp + 4], ecx
mov eax, dword [esp + 0xb0]
mov dword [esp + 8], eax
mov byte [esp + 0xc], bl
call fcn.004bdae0
jmp 0x50c4b4
cmp bl, 0x2d
je 0x50b628
add ebx, 0xffffffd0
cmp bl, 9
jbe 0x50b628
movzx ebx, byte [esp + 0x1c0]
test bl, bl
je 0x50c517
test edi, edi
je 0x50b524
test edi, 0x200
jne 0x50b524
lea ecx, [0x663100]
jmp 0x50b549
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edi
call fcn.004be9f0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x1a8]
mov ebx, ecx
mov ecx, eax
mov eax, ebx
mov dword [esp + 0x110], eax
mov dword [esp + 0x48], ecx
mov dword [esp + 0x190], 0
mov dword [esp + 0x194], 0
mov dword [esp + 0x198], 0
mov dword [esp + 0x19c], 0
mov dword [esp], edx
mov edx, dword [esp + 0x1ac]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x1b0]
mov dword [esp + 8], edx
call fcn.00409700
mov eax, dword [esp + 0xc]
lea ecx, [0x5dc060]
mov dword [esp + 0x190], ecx
mov dword [esp + 0x194], eax
mov eax, dword [esp + 0x48]
test eax, eax
je 0x50b5c3
mov ecx, dword [eax + 4]
jmp 0x50b5c5
mov ecx, eax
mov dword [esp + 0x198], ecx
mov eax, dword [esp + 0x110]
mov dword [esp + 0x19c], eax
lea eax, [0x61d922]
mov dword [esp], eax
mov dword [esp + 4], 0x47
lea eax, [esp + 0x190]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 2
mov dword [esp + 0x10], 2
call fcn.004c4b50
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x1c4], eax
mov dword [esp + 0x1c8], ecx
add esp, 0x1a0
ret
mov dword [esp], 0
mov dword [esp + 4], edx
mov eax, dword [esp + 0x1ac]
mov dword [esp + 8], eax
call fcn.0044dec0
mov eax, dword [esp + 0xc]
mov dword [esp + 0x150], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x8c], ecx
nop
mov edx, dword [esp + 0xb0]
mov ebx, edx
and edx, 0x1f
cmp edx, 0xc
ja 0x50bc5b
lea ebp, [edx - 2]
cmp ebp, 4
jbe 0x50b945
cmp edx, 7
jb 0x50bedc
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], 0xa
mov dword [esp + 0xc], 0x40
call fcn.004a46f0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
test eax, eax
jne 0x50b7a6
mov dword [esp + 0xa8], ecx
mov dword [esp + 0x9c], edx
mov eax, dword [esp + 0x168]
mov ebx, dword [eax]
shl ebx, 3
add ebx, 0xffffffc0
neg ebx
cmp ebx, 0x20
sbb ebp, ebp
lea esi, [ebx - 0x20]
mov dword [esp + 0xd0], esi
mov edi, esi
xchg esi, ebx
neg ebx
xchg esi, ebx
cmp esi, 0x20
sbb eax, eax
mov dword [esp + 0xcc], eax
cmp edi, 0x20
sbb eax, eax
mov dword [esp + 0xc8], eax
mov ecx, edi
shl edx, cl
and edx, eax
mov ecx, ebx
mov eax, dword [esp + 0xa8]
shl eax, cl
and eax, ebp
mov ecx, esi
mov edi, dword [esp + 0x9c]
shr edi, cl
mov esi, dword [esp + 0xcc]
and edi, esi
or edi, eax
or edi, edx
mov dword [esp + 0xcc], edi
mov eax, ecx
mov ecx, ebx
mov edx, dword [esp + 0x9c]
shl edx, cl
and edx, ebp
mov ecx, dword [esp + 0xd0]
shr edi, cl
mov ecx, ebp
mov ebp, dword [esp + 0xc8]
and edi, ebp
mov dword [esp + 0xd0], edi
mov ebp, ecx
mov ecx, eax
mov edi, dword [esp + 0xcc]
mov eax, edi
shl edi, cl
and edi, esi
mov ecx, ebx
shr edx, cl
and edx, ebp
or edx, edi
mov esi, dword [esp + 0xd0]
or edx, esi
mov esi, dword [esp + 0x9c]
cmp esi, edx
setne dl
shr eax, cl
and eax, ebp
mov ebx, dword [esp + 0xa8]
cmp ebx, eax
setne al
or eax, edx
test al, al
je 0x50b913
mov eax, dword [esp + 0xb0]
test eax, 0x200
jne 0x50b7c3
mov ecx, dword [esp + 0x168]
lea eax, [0x663100]
jmp 0x50b7e9
mov ecx, dword [esp + 0x168]
mov dword [esp], ecx
mov ecx, dword [esp + 0x16c]
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.004be9f0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0xfc], ecx
mov dword [esp + 0x34], eax
mov edx, dword [esp + 0x1a4]
mov ebx, dword [edx + 0xc]
mov dword [esp + 0xd4], ebx
lea ebp, [0x5f7580]
mov dword [esp], ebp
call fcn.0040bd40
mov eax, dword [esp + 4]
mov dword [esp + 0x160], eax
mov dword [esp], 0
lea ecx, [0x60c229]
mov dword [esp + 4], ecx
mov dword [esp + 8], 7
mov ecx, dword [esp + 0x150]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0x10], ecx
call fcn.0044dc10
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edi, dword [esp + 0x160]
mov dword [edi + 4], ecx
mov ecx, dword [0x7c78f0]
test ecx, ecx
jne 0x50b872
mov dword [edi], eax
jmp 0x50b877
call fcn.00463730
mov ecx, dword [esp + 0x34]
mov dword [edi + 8], ecx
mov ecx, dword [0x7c78f0]
test ecx, ecx
jne 0x50b894
mov eax, dword [esp + 0xfc]
mov dword [edi + 0xc], eax
jmp 0x50b8a9
lea ecx, [edi + 0xc]
mov eax, dword [esp + 0xfc]
mov edx, edi
mov edi, ecx
call fcn.00463730
mov edi, edx
mov eax, dword [esp + 0xd4]
dec eax
mov dword [edi + 0x10], eax
sar eax, 0x1f
mov dword [edi + 0x14], eax
mov eax, dword [esp + 0x1a4]
mov ecx, dword [eax + 0x3c]
test ecx, ecx
jne 0x50c4b4
mov dword [esp], eax
lea ecx, [0x661a6c]
mov dword [esp + 4], ecx
mov dword [esp + 8], edi
call fcn.00506490
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x1a4]
mov dword [edx + 0x3c], ecx
mov ecx, dword [0x7c78f0]
test ecx, ecx
jne 0x50b906
mov dword [edx + 0x40], eax
jmp 0x50c4b4
lea edi, [edx + 0x40]
call fcn.00463730
jmp 0x50c4b4
mov eax, dword [esp + 0x168]
mov dword [esp], eax
mov eax, dword [esp + 0x16c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 8], eax
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], esi
call fcn.004be480
jmp 0x50c4b4
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], 0xa
mov dword [esp + 0xc], 0x40
call fcn.004a5190
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
test ecx, ecx
jne 0x50bab5
mov dword [esp + 0xac], eax
mov dword [esp + 0xa0], edx
mov dword [esp + 0xa4], ebx
mov ebp, dword [esp + 0x168]
mov esi, dword [ebp]
shl esi, 3
lea ecx, [esi - 0x40]
neg ecx
mov dword [esp + 0xc4], ecx
cmp ecx, 0x20
sbb esi, esi
mov dword [esp + 0xd0], esi
lea edi, [ecx - 0x20]
mov dword [esp + 0xcc], edi
xchg edi, ebx
neg ebx
xchg edi, ebx
mov dword [esp + 0xc8], edi
cmp edi, 0x20
sbb eax, eax
mov dword [esp + 0xc0], eax
mov ebp, dword [esp + 0xcc]
cmp ebp, 0x20
sbb ebp, ebp
mov dword [esp + 0xbc], ebp
shr ecx, 5
cmp ecx, 1
sbb ebp, ebp
mov dword [esp + 0xb8], ebp
mov ebp, dword [esp + 0xc4]
cmp ebp, 0x20
sbb eax, eax
mov ecx, ebp
shl ebx, cl
and ebx, esi
mov ecx, edi
shr edx, cl
mov edi, dword [esp + 0xc0]
and edx, edi
mov ecx, dword [esp + 0xcc]
mov edi, dword [esp + 0xa0]
shl edi, cl
mov esi, dword [esp + 0xbc]
and edi, esi
or edx, ebx
or edx, edi
not eax
or eax, ebp
mov ebx, ecx
mov ecx, eax
mov edi, edx
sar edx, cl
mov eax, dword [esp + 0xa4]
cmp eax, edx
setne al
mov byte [esp + 0x2f], al
mov ecx, ebp
mov edx, dword [esp + 0xa0]
shl edx, cl
mov eax, dword [esp + 0xd0]
and edx, eax
xchg esi, ebx
not ebx
xchg esi, ebx
or esi, ebx
mov ecx, esi
mov ebx, edi
sar edi, cl
mov ecx, ebp
shr edx, cl
and edx, eax
mov ecx, dword [esp + 0xc8]
shl ebx, cl
mov eax, dword [esp + 0xc0]
and ebx, eax
or edx, ebx
mov eax, dword [esp + 0xb8]
xor eax, 0xffffffff
and eax, edi
or eax, edx
mov edx, dword [esp + 0xa0]
cmp edx, eax
setne al
movzx ebx, byte [esp + 0x2f]
or eax, ebx
test al, al
je 0x50bc22
mov eax, dword [esp + 0xb0]
test eax, 0x200
jne 0x50bad2
mov ecx, dword [esp + 0x168]
lea eax, [0x663100]
jmp 0x50baf8
mov ecx, dword [esp + 0x168]
mov dword [esp], ecx
mov ecx, dword [esp + 0x16c]
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.004be9f0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x38], eax
mov dword [esp + 0x100], ecx
mov edx, dword [esp + 0x1a4]
mov ebx, dword [edx + 0xc]
mov dword [esp + 0xd4], ebx
lea ebp, [0x5f7580]
mov dword [esp], ebp
call fcn.0040bd40
mov eax, dword [esp + 4]
mov dword [esp + 0x160], eax
mov dword [esp], 0
lea ecx, [0x60c229]
mov dword [esp + 4], ecx
mov dword [esp + 8], 7
mov ecx, dword [esp + 0x150]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0x10], ecx
call fcn.0044dc10
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edi, dword [esp + 0x160]
mov dword [edi + 4], ecx
mov ecx, dword [0x7c78f0]
test ecx, ecx
jne 0x50bb81
mov dword [edi], eax
jmp 0x50bb86
call fcn.00463730
mov ecx, dword [esp + 0x38]
mov dword [edi + 8], ecx
mov ecx, dword [0x7c78f0]
test ecx, ecx
jne 0x50bba3
mov eax, dword [esp + 0x100]
mov dword [edi + 0xc], eax
jmp 0x50bbb8
lea ecx, [edi + 0xc]
mov eax, dword [esp + 0x100]
mov edx, edi
mov edi, ecx
call fcn.00463730
mov edi, edx
mov eax, dword [esp + 0xd4]
dec eax
mov dword [edi + 0x10], eax
sar eax, 0x1f
mov dword [edi + 0x14], eax
mov eax, dword [esp + 0x1a4]
mov ecx, dword [eax + 0x3c]
test ecx, ecx
jne 0x50c4b4
mov dword [esp], eax
lea ecx, [0x661a6c]
mov dword [esp + 4], ecx
mov dword [esp + 8], edi
call fcn.00506490
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x1a4]
mov dword [edx + 0x3c], ecx
mov ecx, dword [0x7c78f0]
test ecx, ecx
jne 0x50bc15
mov dword [edx + 0x40], eax
jmp 0x50c4b4
lea edi, [edx + 0x40]
call fcn.00463730
jmp 0x50c4b4
mov eax, dword [esp + 0x168]
mov dword [esp], eax
mov eax, dword [esp + 0x16c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], edx
call fcn.004bdea0
jmp 0x50c4b4
cmp edx, 0xe
ja 0x50bed3
mov dword [esp + 0xb4], edx
test ebx, 0x200
jne 0x50bc82
lea ebp, [0x663100]
mov esi, dword [esp + 0x168]
jmp 0x50bcac
mov eax, dword [esp + 0x168]
mov dword [esp], eax
mov ecx, dword [esp + 0x16c]
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
call fcn.004be9f0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov ebp, eax
mov esi, ecx
mov eax, dword [ebp + 0x18]
mov dword [esp], esi
call eax
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x150]
mov dword [esp], ecx
mov edx, dword [esp + 0x8c]
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call fcn.004a3f50
movsd xmm0, qword [esp + 0xc]
mov eax, dword [esp + 0x14]
test eax, eax
je 0x50bcf2
mov eax, dword [esp + 0xb0]
test eax, 0x200
jmp 0x50bd48
mov eax, dword [esp + 0xb4]
cmp eax, 0xd
jne 0x50bea9
nop
xorps xmm1, xmm1
ucomisd xmm1, xmm0
jbe 0x50bd18
movsd xmm1, qword [0x661364]
pxor xmm0, xmm1
movsd xmm1, qword [0x66134c]
ucomisd xmm0, xmm1
jbe 0x50bea9
movsd xmm1, qword [0x661354]
ucomisd xmm1, xmm0
jb 0x50bea9
mov eax, dword [esp + 0xb0]
test eax, 0x200
jne 0x50bd59
mov ecx, dword [esp + 0x168]
lea eax, [0x663100]
jmp 0x50bd7f
mov ecx, dword [esp + 0x168]
mov dword [esp], ecx
mov ecx, dword [esp + 0x16c]
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.004be9f0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0xf8], ecx
mov dword [esp + 0x30], eax
mov edx, dword [esp + 0x1a4]
mov ebx, dword [edx + 0xc]
mov dword [esp + 0xd4], ebx
lea ebp, [0x5f7580]
mov dword [esp], ebp
call fcn.0040bd40
mov eax, dword [esp + 4]
mov dword [esp + 0x160], eax
mov dword [esp], 0
lea ecx, [0x60c229]
mov dword [esp + 4], ecx
mov dword [esp + 8], 7
mov ecx, dword [esp + 0x150]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0x10], ecx
call fcn.0044dc10
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edi, dword [esp + 0x160]
mov dword [edi + 4], ecx
mov ecx, dword [0x7c78f0]
test ecx, ecx
jne 0x50be08
mov dword [edi], eax
jmp 0x50be0d
call fcn.00463730
mov ecx, dword [esp + 0x30]
mov dword [edi + 8], ecx
mov ecx, dword [0x7c78f0]
test ecx, ecx
jne 0x50be2a
mov eax, dword [esp + 0xf8]
mov dword [edi + 0xc], eax
jmp 0x50be3f
lea ecx, [edi + 0xc]
mov eax, dword [esp + 0xf8]
mov edx, edi
mov edi, ecx
call fcn.00463730
mov edi, edx
mov eax, dword [esp + 0xd4]
dec eax
mov dword [edi + 0x10], eax
sar eax, 0x1f
mov dword [edi + 0x14], eax
mov eax, dword [esp + 0x1a4]
mov ecx, dword [eax + 0x3c]
test ecx, ecx
jne 0x50c4b4
mov dword [esp], eax
lea ecx, [0x661a6c]
mov dword [esp + 4], ecx
mov dword [esp + 8], edi
call fcn.00506490
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x1a4]
mov dword [edx + 0x3c], ecx
mov ecx, dword [0x7c78f0]
test ecx, ecx
jne 0x50be9c
mov dword [edx + 0x40], eax
jmp 0x50c4b4
lea edi, [edx + 0x40]
call fcn.00463730
jmp 0x50c4b4
mov eax, dword [esp + 0x168]
mov dword [esp], eax
mov eax, dword [esp + 0x16c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 8], eax
call fcn.004bdde0
jmp 0x50c4b4
cmp edx, 0x14
je 0x50c1fb
cmp edx, 0x18
jne 0x50bf7b
test ebx, 0x200
jne 0x50befc
lea edx, [0x663100]
mov ebp, dword [esp + 0x168]
jmp 0x50bf3b
mov eax, dword [esp + 0x168]
mov dword [esp], eax
mov ecx, dword [esp + 0x16c]
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
call fcn.004be9f0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0xb0]
mov edx, eax
mov ebp, ecx
mov eax, dword [esp + 0x150]
mov ecx, dword [esp + 0x8c]
mov esi, dword [0x7a16e4]
cmp dword [0x7a16e0], edx
je 0x50bf4d
xor edx, edx
jmp 0x50bf7d
mov dword [esp], edx
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
call fcn.00403850
movzx eax, byte [esp + 0xc]
mov ecx, dword [esp + 0x8c]
mov ebx, dword [esp + 0xb0]
mov edx, eax
mov eax, dword [esp + 0x150]
jmp 0x50bf7d
xor edx, edx
test dl, dl
jne 0x50c1d0
movzx eax, byte [esp + 0x1c0]
test al, al
je 0x50c0b8
test ebx, ebx
je 0x50bfb0
test ebx, 0x200
jne 0x50bfb0
lea eax, [0x663100]
mov ecx, dword [esp + 0x168]
jmp 0x50bfd6
mov eax, dword [esp + 0x168]
mov dword [esp], eax
mov eax, dword [esp + 0x16c]
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
call fcn.004be9f0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x10c], ecx
mov dword [esp + 0x44], eax
mov dword [esp + 0x190], 0
mov dword [esp + 0x194], 0
mov dword [esp + 0x198], 0
mov dword [esp + 0x19c], 0
mov edx, dword [esp + 0x1a8]
mov dword [esp], edx
mov edx, dword [esp + 0x1ac]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x1b0]
mov dword [esp + 8], edx
call fcn.00409700
mov eax, dword [esp + 0xc]
lea ecx, [0x5dc060]
mov dword [esp + 0x190], ecx
mov dword [esp + 0x194], eax
mov eax, dword [esp + 0x44]
test eax, eax
je 0x50c055
mov eax, dword [eax + 4]
mov dword [esp + 0x198], eax
mov eax, dword [esp + 0x10c]
mov dword [esp + 0x19c], eax
lea eax, [0x61d922]
mov dword [esp], eax
mov dword [esp + 4], 0x47
lea eax, [esp + 0x190]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 2
mov dword [esp + 0x10], 2
call fcn.004c4b50
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x1c4], eax
mov dword [esp + 0x1c8], ecx
add esp, 0x1a0
ret
test ebx, ebx
je 0x50c0d3
test ebx, 0x200
jne 0x50c0d3
mov ecx, dword [esp + 0x168]
lea eax, [0x663100]
jmp 0x50c0f9
mov eax, dword [esp + 0x168]
mov dword [esp], eax
mov eax, dword [esp + 0x16c]
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
call fcn.004be9f0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x108], ecx
mov dword [esp + 0x40], eax
mov edx, dword [esp + 0x1a4]
mov ebx, dword [edx + 0xc]
mov dword [esp + 0xd4], ebx
lea ebp, [0x5f7580]
mov dword [esp], ebp
call fcn.0040bd40
mov eax, dword [esp + 4]
mov dword [eax + 4], 6
lea ecx, [0x60be2c]
mov dword [eax], ecx
mov ecx, dword [esp + 0x40]
mov dword [eax + 8], ecx
mov ecx, dword [0x7c78f0]
test ecx, ecx
jne 0x50c153
mov ecx, dword [esp + 0x108]
mov dword [eax + 0xc], ecx
jmp 0x50c166
lea edi, [eax + 0xc]
mov ecx, eax
mov eax, dword [esp + 0x108]
call fcn.00463730
mov eax, ecx
mov ecx, dword [esp + 0xd4]
dec ecx
mov dword [eax + 0x10], ecx
sar ecx, 0x1f
mov dword [eax + 0x14], ecx
mov ecx, dword [esp + 0x1a4]
mov edx, dword [ecx + 0x3c]
test edx, edx
jne 0x50c4b4
mov dword [esp], ecx
lea edx, [0x661a6c]
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call fcn.00506490
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x1a4]
mov dword [edx + 0x3c], ecx
mov ecx, dword [0x7c78f0]
test ecx, ecx
jne 0x50c1c3
mov dword [edx + 0x40], eax
jmp 0x50c4b4
lea edi, [edx + 0x40]
call fcn.00463730
jmp 0x50c4b4
mov edx, dword [esp + 0x168]
mov dword [esp], edx
mov edx, dword [esp + 0x16c]
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
call fcn.004be580
jmp 0x50c4b4
mov edx, dword [esp + 0x1a4]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.005099f0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0xc]
mov ebp, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
test edx, edx
je 0x50c282
nop
mov edx, dword [esp + 0x1a4]
mov ebx, dword [edx + 0x3c]
test ebx, ebx
jne 0x50c4b4
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.00506490
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x1a4]
mov dword [edx + 0x3c], ecx
mov ecx, dword [0x7c78f0]
test ecx, ecx
jne 0x50c275
mov dword [edx + 0x40], eax
jmp 0x50c4b4
lea edi, [edx + 0x40]
call fcn.00463730
jmp 0x50c4b4
mov dword [esp + 0x158], esi
mov dword [esp + 0x15c], ebp
mov dword [esp + 0x98], ebx
mov eax, dword [esp + 0x168]
mov dword [esp], eax
mov ecx, dword [esp + 0x16c]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0xb0]
mov dword [esp + 8], edx
call fcn.004bd6e0
mov eax, dword [esp + 0xc]
test eax, eax
je 0x50c3e2
mov eax, dword [esp + 0xb0]
test eax, 0x200
jne 0x50c2e5
mov ecx, dword [esp + 0x168]
lea eax, [0x663100]
jmp 0x50c30b
mov ecx, dword [esp + 0x168]
mov dword [esp], ecx
mov ecx, dword [esp + 0x16c]
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.004be9f0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x104], ecx
mov dword [esp + 0x3c], eax
mov edx, dword [esp + 0x1a4]
mov ebx, dword [edx + 0xc]
mov dword [esp + 0xd4], ebx
lea ebp, [0x5f7580]
mov dword [esp], ebp
call fcn.0040bd40
mov eax, dword [esp + 4]
mov dword [eax + 4], 6
lea ecx, [0x60be2c]
mov dword [eax], ecx
mov ecx, dword [esp + 0x3c]
mov dword [eax + 8], ecx
mov ecx, dword [0x7c78f0]
test ecx, ecx
jne 0x50c365
mov ecx, dword [esp + 0x104]
mov dword [eax + 0xc], ecx
jmp 0x50c378
lea edi, [eax + 0xc]
mov ecx, eax
mov eax, dword [esp + 0x104]
call fcn.00463730
mov eax, ecx
mov ecx, dword [esp + 0xd4]
dec ecx
mov dword [eax + 0x10], ecx
sar ecx, 0x1f
mov dword [eax + 0x14], ecx
mov ecx, dword [esp + 0x1a4]
mov edx, dword [ecx + 0x3c]
test edx, edx
jne 0x50c4b4
mov dword [esp], ecx
lea edx, [0x661a6c]
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call fcn.00506490
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x1a4]
mov dword [edx + 0x3c], ecx
mov ecx, dword [0x7c78f0]
test ecx, ecx
jne 0x50c3d5
mov dword [edx + 0x40], eax
jmp 0x50c4b4
lea edi, [edx + 0x40]
call fcn.00463730
jmp 0x50c4b4
mov ecx, dword [esp + 0x98]
test ecx, ecx
je 0x50c47d
nop
movzx ecx, byte [0x7a1de0]
test cl, cl
je 0x50c437
mov ecx, dword [esp + 0x15c]
mov dword [0x7a1de4], ecx
mov edx, dword [0x7c78f0]
test edx, edx
jne 0x50c423
mov eax, dword [esp + 0x158]
mov dword [0x7a1de8], eax
jmp 0x50c445
lea edi, [0x7a1de8]
mov eax, dword [esp + 0x158]
call fcn.00463730
jmp 0x50c445
mov eax, dword [esp + 0x158]
mov ecx, dword [esp + 0x15c]
mov dword [esp + 0x170], ecx
mov dword [esp + 0x174], eax
mov ecx, dword [esp + 0x170]
test ecx, ecx
je 0x50c475
nop
movzx edx, byte [ecx + 0xf]
mov ebx, edx
and edx, 0x1f
test bl, 0x20
jne 0x50c483
or edx, 0x80
jmp 0x50c483
xor edx, edx
xor ecx, ecx
xor eax, eax
jmp 0x50c483
xor edx, edx
xor ecx, ecx
xor eax, eax
mov ebx, dword [esp + 0x168]
mov dword [esp], ebx
mov ebx, dword [esp + 0x16c]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0xb0]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
call fcn.004bd9d0
mov dword [esp + 0x1c4], 0
mov dword [esp + 0x1c8], 0
add esp, 0x1a0
ret
mov eax, dword [edx + 0x10]
mov dword [esp], ebx
mov ecx, dword [esp + 0x1a8]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x1ac]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x1b0]
mov dword [esp + 0xc], ecx
call eax
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x1c4], eax
mov dword [esp + 0x1c8], ecx
add esp, 0x1a0
ret
lea eax, [0x5e1fa0]
mov dword [esp], eax
lea eax, [0x6613dc]
mov dword [esp + 4], eax
call fcn.00435720
lea eax, [0x5e1fa0]
mov dword [esp], eax
lea eax, [0x6613dc]
mov dword [esp + 4], eax
call fcn.00435720
call fcn.004637f0
lea eax, [0x5e1fa0]
mov dword [esp], eax
lea eax, [0x6613dc]
mov dword [esp + 4], eax
call fcn.00435720
nop
call fcn.00462320
jmp fcn.00509bc0