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

Disassembly:
mov eax, dword [esp + 8]
test eax, eax
jl 0x50c2e8
inc eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x10], 0
mov eax, dword [esp + 8]
push eax
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x14]
mov eax, edi
call fcn.0050d014
mov ebx, eax
mov eax, dword [esi + 0x74db029c]
cmp byte [eax + 0x39], 0xb
jne 0x50c1f9
mov eax, dword [esp + 0x14]
sub eax, ebx
mov dword [esp + 0x54], eax
fild dword [esp + 0x54]
fild dword [esp + 0x14]
fdivp st(1)
movzx eax, byte [esp + 0x24]
mov dword [esp + 0x58], eax
fild dword [esp + 0x58]
fmulp st(1)
call fcn.00404764
invalid
mov ebx, eax
jmp 0x50c21d
dec dword [ebx - 0x76db1428]
pop esp
and al, 0x54
mov dword [esp + 0x54], ebx
fild dword [esp + 0x54]
fild dword [esp + 0x14]
fdivp st(1)
movzx eax, byte [esp + 0x24]
mov dword [esp + 0x58], eax
fild dword [esp + 0x58]
fmulp st(1)
call fcn.00404764
mov ebx, eax
mov eax, dword [esp + 0x28]
imul ebx
mov ecx, 0xff
cdq
idiv ecx
mov ecx, eax
movzx ecx, cl
mov eax, dword [esp + 0x30]
imul ebx
mov ebp, 0xff
cdq
idiv ebp
movzx eax, al
shl eax, 8
or ecx, eax
mov eax, dword [esp + 0x2c]
imul ebx
mov ebx, 0xff
cdq
idiv ebx
movzx eax, al
shl eax, 0x10
or ecx, eax
mov dword [esp + 0x20], ecx
mov eax, dword [esp + 0x20]
push eax
mov eax, dword [esi + 0x74db0378]
call fcn.00464c88
mov ecx, dword [esp + 0x14]
mov edx, edi
mov ebx, dword [eax]
call dword [ebx + 0x20]
mov eax, dword [esp + 0x20]
push eax
mov eax, dword [esi + 0x74db0378]
call fcn.00464c88
mov ecx, dword [esp + 0x20]
sub ecx, dword [esp + 0x14]
mov ebx, dword [esp + 0x1c]
sub ebx, edi
mov edx, ebx
mov ebp, dword [eax]
call dword [ebp + 0x20]
mov eax, dword [esp + 0x20]
push eax
mov eax, dword [esi + 0x74db0378]
call fcn.00464c88
mov edx, ebx
mov ecx, dword [esp + 0x14]
mov ebx, dword [eax]
call dword [ebx + 0x20]
mov eax, dword [esp + 0x20]
push eax
mov eax, dword [esi + 0x74db0378]
call fcn.00464c88
mov ecx, dword [esp + 0x20]
sub ecx, dword [esp + 0x14]
mov edx, edi
mov ebx, dword [eax]
call dword [ebx + 0x20]
inc dword [esp + 0x10]
dec dword [esp + 0x38]
jne 0x50c1ab
inc edi
dec dword [esp + 0x34]
jne 0x50c192
jmp 0x50e0f5
add ebx, ebx
je 0x50e149
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax + 0x74db0290]
lea ecx, [ebp - 0x58]
mov eax, dword [ebp - 0x40]
call fcn.0050b2c8
push 0
mov eax, dword [ebp - 0x40]
call fcn.0045f050
push eax
call fcn.0040cc68
push ebx
call fcn.0040cab8
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x74db029c]
cmp byte [eax + 0x14], 0
je 0x50f8cd
lea edx, [ebp - 0x58]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax]
call dword [ecx + 0x54]
mov eax, dword [ebp - 0x1c]
cmp byte [eax + 0x3a9], 0
add byte [eax], al
je 0x50e16d
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x280]
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], eax
mov edx, dword [ebp - 0x50]
sub edx, 2
sub edx, eax
mov dword [ebp - 0x50], edx
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x1c]
cmp byte [eax + 0x27a], 0
jne 0x50e185
mov eax, dword [ebp - 0x1c]
cmp byte [eax + 0x27b], 0
je 0x50e1a6
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x27c]
neg eax
push eax
mov edx, dword [ebp - 0x1c]
mov edx, dword [edx + 0x27c]
neg edx
push eax
lea eax, [ebp - 0x58]
push eax
call fcn.0040d0c8
mov eax, dword [ebp - 0x1c]
cmp byte [eax + 0x2ac], 0
jne 0x50e1e2
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x74db029c]
mov edx, dword [eax + 0xc]
mov eax, dword [ebp - 0x40]
mov eax, dword [eax + 0x48]
call fcn.0045de48
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x74db029c]
mov edx, dword [eax + 0xc]
mov eax, dword [ebp - 0x40]
mov eax, dword [eax + 0x44]
call fcn.0045da74
jmp 0x50e210
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x74db029c]
mov edx, dword [eax + 0x30]
mov eax, dword [ebp - 0x40]
mov eax, dword [eax + 0x48]
call fcn.0045de48
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x74db029c]
mov edx, dword [eax + 0x30]
mov eax, dword [ebp - 0x40]
mov eax, dword [eax + 0x44]
call fcn.0045da74
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x74db029c]
cmp byte [eax + 0x39], 0
je 0x50e242
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x74db029c]
cmp byte [eax + 0x39], 0xf
jne 0x50e384
mov eax, dword [ebp - 0x1c]
call fcn.0051338c
test al, al
jne 0x50e384
mov eax, dword [ebp - 0x1c]
mov esi, dword [eax + 0x74db029c]
cmp dword [esi + 0x4c], 0x1fffffff
je 0x50e325
cmp byte [esi + 0x68], 0
jne 0x50e2c0
push 0x40
mov eax, dword [esi + 4]
add eax, dword [ebp - 0x54]
mov edx, dword [ebp - 0x1c]
mov edx, dword [edx + 0x27c]
add edx, edx
sub eax, edx
push eax
lea eax, [ebp - 0x104]
push eax
mov ecx, dword [ebp - 0x50]
mov edx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x58]
call fcn.004388e0
lea eax, [ebp - 0x104]
push eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x74db029c]
cmp byte [eax + 0x80], 1
sete al
push eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x74db029c]
mov ecx, dword [eax + 0x4c]
mov edx, dword [esi + 0xc]
mov eax, dword [ebp - 0x40]
call fcn.0050c324
jmp 0x50f4fd
push 0x40
mov eax, dword [ebp - 0x4c]
sub eax, dword [ebp - 0x48]
push eax
lea eax, [ebp - 0x104]
push eax
mov ecx, dword [esi + 4]
add ecx, dword [ebp - 0x58]
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x27c]
add eax, eax
sub ecx, eax
mov edx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x58]
call fcn.004388e0
lea eax, [ebp - 0x104]
push eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x74db029c]
cmp byte [eax + 0x80], 1
sete al
push eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x74db029c]
mov ecx, dword [eax + 0x4c]
mov edx, dword [esi + 0xc]
mov eax, dword [ebp - 0x40]
call fcn.0050c324
jmp 0x50f4fd
cmp byte [esi + 0x68], 0
jne 0x50e356
mov eax, dword [ebp - 0x50]
push eax
mov eax, dword [esi + 4]
add eax, dword [ebp - 0x54]
mov edx, dword [ebp - 0x1c]
mov edx, dword [edx + 0x27c]
add edx, edx
sub eax, edx
push eax
mov ecx, dword [ebp - 0x54]
mov edx, dword [ebp - 0x58]
mov eax, dword [ebp - 0x40]
mov ebx, dword [eax]
call dword [ebx + 0x74]
jmp 0x50f4fd
mov eax, dword [esi + 4]
add eax, dword [ebp - 0x58]
mov edx, dword [ebp - 0x1c]
mov edx, dword [edx + 0x27c]
add edx, edx
sub eax, edx
push eax
mov eax, dword [ebp - 0x4c]
sub eax, dword [ebp - 0x48]
push eax
mov ecx, dword [ebp - 0x54]
mov edx, dword [ebp - 0x58]
mov eax, dword [ebp - 0x40]
mov ebx, dword [eax]
call dword [ebx + 0x74]
jmp 0x50f4fd
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x74db029c]
cmp byte [eax + 0x68], 0
jne 0x50e3d8
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x74db029c]
mov eax, dword [eax + 4]
add eax, dword [ebp - 0x54]
mov edx, dword [ebp - 0x1c]
mov edx, dword [edx + 0x27c]
add edx, edx
sub eax, edx
push eax
lea eax, [ebp - 0x104]
push eax
mov ecx, dword [ebp - 0x50]
mov edx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x58]
call fcn.004388e0
lea ecx, [ebp - 0x104]
mov edx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x1c]
call 0x50e100
jmp 0x50e41b
mov eax, dword [ebp - 0x4c]
push eax
lea eax, [ebp - 0x104]
push eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x74db029c]
mov ecx, dword [eax + 4]
add ecx, dword [ebp - 0x58]
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x27c]
add eax, eax
sub ecx, eax
mov edx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x58]
call fcn.004388e0
lea ecx, [ebp - 0x104]
mov edx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x1c]
call 0x50e100
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x74db029c]
cmp byte [eax + 0x15], 0
je 0x50ea98
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x74db029c]
cmp byte [eax + 0x39], 0xf
jne 0x50e58b
mov eax, dword [ebp - 0x1c]
call fcn.0051338c
test al, al
je 0x50e58b
push 0x5112a0
mov eax, dword [ebp - 0x1c]
call fcn.004c3054
push eax
mov eax, dword [0x60d5cc]
mov eax, dword [eax]
call eax
mov ebx, eax
mov dword [ebp - 0x38], 0xe
mov eax, 0xe
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x74db029c]
cmp byte [eax + 0x48], 0
jne 0x50e4f6
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x74db029c]
cmp byte [eax + 0x68], 0
jne 0x50e4c8
mov eax, dword [ebp - 0x54]
add eax, dword [ebp - 0x34]
add eax, 4
push eax
lea eax, [ebp - 0x78]
push eax
mov ecx, dword [ebp - 0x50]
sub ecx, 2
mov edx, dword [ebp - 0x54]
add edx, 4
mov eax, dword [ebp - 0x50]
sub eax, dword [ebp - 0x38]
sub eax, 2
call fcn.004377fe
sub dword [ebp - 0x50], 0xe
jmp 0x50f641
mov eax, dword [ebp - 0x54]
add eax, dword [ebp - 0x38]
add eax, 2
push eax
lea eax, [ebp - 0x78]
push eax
mov ecx, dword [ebp - 0x58]
add ecx, dword [ebp - 0x34]
add ecx, 4
mov edx, dword [ebp - 0x54]
add edx, 2
mov eax, dword [ebp - 0x58]
add eax, 4
call fcn.004388e0
sub dword [ebp - 0x54], 0xe
jmp 0x50e55f
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x74db029c]
cmp byte [eax + 0x68], 0
jne 0x50e533
mov eax, dword [ebp - 0x54]
add eax, dword [ebp - 0x34]
add eax, 4
push eax
lea eax, [ebp - 0x78]
push eax
mov ecx, dword [ebp - 0x58]
add ecx, dword [ebp - 0x38]
add ecx, 2
mov edx, dword [ebp - 0x54]
add edx, 4
mov eax, dword [ebp - 0x58]
add eax, 2
call fcn.004388e0
add dword [ebp - 0x58], 0xe
jmp 0x50e55f
mov eax, dword [ebp - 0x4c]
sub eax, 2
push eax
lea eax, [ebp - 0x78]
push eax
mov ecx, dword [ebp - 0x58]
add ecx, dword [ebp - 0x34]
add ecx, 4
mov edx, dword [ebp - 0x4c]
sub edx, dword [ebp - 0x38]
sub edx, 2
mov eax, dword [ebp - 0x58]
add eax, 4
call fcn.004388e0
sub dword [ebp - 0x4c], 0xe
push 0
lea eax, [ebp - 0x78]
push eax
push 1
push 0x12
mov eax, dword [ebp - 0x40]
call fcn.0045f050
push eax
push ebx
mov eax, dword [0x60d85c]
mov eax, dword [eax]
call eax
push ebx
mov eax, dword [0x60d890]
mov eax, dword [eax]
call eax
jmp 0x50fb7a
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x74db029c]
mov eax, dword [eax + 0x24]
mov edx, dword [eax]
call dword [edx + 0x20]
test al, al
jne 0x50e5b9
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x74db029c]
mov eax, dword [eax + 0x28]
mov edx, dword [eax]
call dword [edx + 0x20]
test al, al
je 0x50e7de
mov eax, dword [ebp - 0x40]
mov eax, dword [eax + 0x44]
mov edx, 2
call fcn.0045dbc8
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x74db029c]
mov edx, dword [eax + 0x1c]
mov eax, dword [ebp - 0x40]
mov eax, dword [eax + 0x44]
call fcn.0045da74
mov eax, dword [ebp - 0x1c]
cmp byte [eax + 0x10e5e9], 0
je 0x50e615
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x74db029c]
cmp dword [eax + 0x6c], 0x1fffffff
je 0x50e615
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x74db029c]
mov edx, dword [eax + 0x6c]
mov eax, dword [ebp - 0x40]
mov eax, dword [eax + 0x44]
call fcn.0045da74
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x74db029c]
cmp byte [eax + 0x48], 0
jne 0x50e6f5
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x74db029c]
cmp byte [eax + 0x68], 0
jne 0x50e690
mov ecx, dword [ebp - 0x54]
add ecx, 4
mov edx, dword [ebp - 0x50]
sub edx, 0xa
mov eax, dword [ebp - 0x40]
mov ebx, dword [eax]
call dword [ebx + 0x5c]
mov ecx, dword [ebp - 0x54]
add ecx, 0xa
mov edx, dword [ebp - 0x50]
sub edx, 4
mov eax, dword [ebp - 0x40]
mov ebx, dword [eax]
call dword [ebx + 0x58]
mov ecx, dword [ebp - 0x54]
add ecx, 4
mov edx, dword [ebp - 0x50]
sub edx, 4
mov eax, dword [ebp - 0x40]
mov ebx, dword [eax]
call dword [ebx + 0x5c]
mov ecx, dword [ebp - 0x54]
add ecx, 0xa
mov edx, dword [ebp - 0x50]
sub edx, 0xa
mov eax, dword [ebp - 0x40]
mov ebx, dword [eax]
call dword [ebx + 0x58]
sub dword [ebp - 0x50], 0xc
jmp 0x50fb7a
mov ecx, dword [ebp - 0x54]
add ecx, 4
mov edx, dword [ebp - 0x58]
add edx, 0xe
sub edx, 0xa
mov eax, dword [ebp - 0x40]
mov ebx, dword [eax]
call dword [ebx + 0x5c]
mov ecx, dword [ebp - 0x54]
add ecx, 0xa
mov edx, dword [ebp - 0x58]
add edx, 0xe
sub edx, 4
mov eax, dword [ebp - 0x40]
mov ebx, dword [eax]
call dword [ebx + 0x58]
mov ecx, dword [ebp - 0x54]
add ecx, 4
mov edx, dword [ebp - 0x58]
add edx, 0xe
sub edx, 4
mov eax, dword [ebp - 0x40]
mov ebx, dword [eax]
call dword [ebx + 0x5c]
mov ecx, dword [ebp - 0x54]
add ecx, 0xa
mov edx, dword [ebp - 0x58]
add edx, 0xe
sub edx, 0xa
mov eax, dword [ebp - 0x40]
mov ebx, dword [eax]
call dword [ebx + 0x58]
add dword [ebp - 0x54], 0xc
jmp 0x50fb7a
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x74db029c]
cmp byte [eax + 0x68], 0
jne 0x50e771
mov ecx, dword [ebp - 0x54]
add ecx, 4
mov edx, dword [ebp - 0x58]
add edx, 4
mov eax, dword [ebp - 0x40]
mov ebx, dword [eax]
call dword [ebx + 0x5c]
mov ecx, dword [ebp - 0x54]
add ecx, 4
mov edx, dword [ebp - 0x58]
add edx, 4
mov eax, dword [ebp - 0x40]
mov ebx, dword [eax]
call dword [ebx + 0x5c]
mov ecx, dword [ebp - 0x54]
add ecx, 0xa
mov edx, dword [ebp - 0x58]
add edx, 0xa
mov eax, dword [ebp - 0x40]
mov ebx, dword [eax]
call dword [ebx + 0x58]
mov ecx, dword [ebp - 0x54]
add ecx, 4
mov edx, dword [ebp - 0x58]
add edx, 0xa
mov eax, dword [ebp - 0x40]
mov ebx, dword [eax]
call dword [ebx + 0x5c]
mov ecx, dword [ebp - 0x54]
add ecx, 0xa
mov edx, dword [ebp - 0x58]
add edx, 4
mov eax, dword [ebp - 0x40]
mov ebx, dword [eax]
call dword [ebx + 0x58]
add dword [ebp - 0x58], 0xc
jmp 0x50fb7a
mov ecx, dword [ebp - 0x4c]
sub ecx, 4
mov edx, dword [ebp - 0x58]
add edx, 4
mov eax, dword [ebp - 0x40]
mov ebx, dword [eax]
call dword [ebx + 0x5c]
mov ecx, dword [ebp - 0x4c]
sub ecx, 4
mov edx, dword [ebp - 0x58]
add edx, 4
mov eax, dword [ebp - 0x40]
mov ebx, dword [eax]
call dword [ebx + 0x5c]
mov ecx, dword [ebp - 0x4c]
sub ecx, 0xa
mov edx, dword [ebp - 0x58]
add edx, 0xa
mov eax, dword [ebp - 0x40]
mov ebx, dword [eax]
call dword [ebx + 0x58]
mov ecx, dword [ebp - 0x4c]
sub ecx, 4
mov edx, dword [ebp - 0x58]
add edx, 0xa
mov eax, dword [ebp - 0x40]
mov ebx, dword [eax]
call dword [ebx + 0x5c]
mov ecx, dword [ebp - 0x4c]
sub ecx, 0xa
mov edx, dword [ebp - 0x58]
add edx, 4
mov eax, dword [ebp - 0x40]
mov ebx, dword [eax]
call dword [ebx + 0x58]
sub dword [ebp - 0x4c], 0xc
jmp 0x50fb7a
mov eax, dword [ebp - 0x1c]
cmp byte [eax + 0x2ac], 0
je 0x50e947
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x74db029c]
mov eax, dword [eax + 0x24]
xor edx, edx
call fcn.0046619c
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x74db029c]
mov eax, dword [eax + 0x24]
mov dl, 1
mov ecx, dword [eax]
call dword [ecx + 0x40]
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x74db029c]
cmp byte [eax + 0x48], 0
jne 0x50e8b7
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x74db029c]
cmp byte [eax + 0x68], 0
jne 0x50e880
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x74db029c]
mov eax, dword [eax + 0x24]
push eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x74db029c]
mov eax, dword [eax + 0x24]
mov edx, dword [eax]
call dword [edx + 0x30]
mov edx, dword [ebp - 0x50]
sub edx, eax
mov ecx, dword [ebp - 0x54]
add ecx, 2
mov eax, dword [ebp - 0x40]
mov ebx, dword [eax]
call dword [ebx + 0x3c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x74db029c]
mov eax, dword [eax + 0x24]
mov edx, dword [eax]
call dword [edx + 0x30]
sub dword [ebp - 0x50], eax
jmp 0x50fb7a
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x74db029c]
mov eax, dword [eax + 0x24]
push eax
mov edx, dword [ebp - 0x58]
add edx, 2
mov ecx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x40]
mov ebx, dword [eax]
call dword [ebx + 0x3c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x74db029c]
mov eax, dword [eax + 0x24]
mov edx, dword [eax]
call dword [edx + 0x24]
add dword [ebp - 0x54], eax
jmp 0x50fb7a
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x74db029c]
cmp byte [eax + 0x68], 0
jne 0x50e8fd
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x74db029c]
mov eax, dword [eax + 0x24]
push eax
mov ecx, dword [ebp - 0x54]
add ecx, 2
mov edx, dword [ebp - 0x58]
mov eax, dword [ebp - 0x40]
mov ebx, dword [eax]
call dword [ebx + 0x3c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x74db029c]
mov eax, dword [eax + 0x24]
mov edx, dword [eax]
call dword [edx + 0x30]
add dword [ebp - 0x58], eax
jmp 0x50fb7a
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x74db029c]
mov eax, dword [eax + 0x24]
push eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x74db029c]
mov eax, dword [eax + 0x24]
mov edx, dword [eax]
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x74db029c]
invalid
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x74db03ec]
cmp byte [eax + 0x15], 0
je 0x50ff86
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x74db029c]
cmp byte [eax + 0x68], 0
jne 0x50f92e
mov eax, dword [ebp - 0x1c]
call fcn.0051188c
dec eax
push eax
lea eax, [ebp - 0x98]
push eax
mov eax, dword [ebp - 0x1c]
call fcn.0051188c
mov edx, dword [ebp - 0x1c]
mov edx, dword [edx + 0x74db03ec]
sub eax, dword [edx + 0x18]
dec eax
push eax
mov eax, dword [ebp - 0x1c]
call fcn.005118c8
mov ecx, eax
dec ecx
mov eax, 1
pop edx
call fcn.004388e0
jmp 0x50f96b
mov eax, dword [ebp - 0x1c]
call fcn.0051188c
dec eax
push eax
lea eax, [ebp - 0x98]
push eax
mov eax, dword [ebp - 0x1c]
call fcn.005118c8
mov edx, dword [ebp - 0x1c]
mov edx, dword [edx + 0x74db03ec]
sub eax, dword [edx + 0x18]
dec eax
push eax
mov eax, dword [ebp - 0x1c]
call fcn.005118c8
mov ecx, eax
dec ecx
mov edx, 1
pop eax
call fcn.004388e0
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x74db03ec]
mov ebx, dword [eax + 0xc]
cmp ebx, 0x1fffffff
je 0x50f9c8
cmp dword [eax + 0x10], 0x1fffffff
je 0x50f9c8
push 0x28
lea eax, [ebp - 0x98]
push eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x74db03ec]
cmp byte [eax + 0x14], 1
sete al
push eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x74db03ec]
mov eax, dword [eax + 0x10]
call fcn.0045cc58
push eax
mov eax, ebx
call fcn.0045cc58
mov edx, eax
mov eax, dword [ebp - 0x40]
pop ecx
call fcn.0050c324
jmp 0x50fa16
cmp ebx, 0x1fffffff
je 0x50fa16
mov edx, ebx
mov eax, dword [ebp - 0x40]
mov eax, dword [eax + 0x44]
call fcn.0045da74
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x74db03ec]
mov edx, dword [eax + 0xc]
mov eax, dword [ebp - 0x40]
mov eax, dword [eax + 0x48]
call fcn.0045de48
mov eax, dword [ebp - 0x90]
push eax
mov eax, dword [ebp - 0x8c]
push eax
mov ecx, dword [ebp - 0x94]
mov edx, dword [ebp - 0x98]
mov eax, dword [ebp - 0x40]
mov ebx, dword [eax]
call dword [ebx + 0x74]
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x74db03ec]
cmp dword [eax + 4], 0
jl 0x50fb4a
mov eax, dword [ebp - 0x1c]
cmp dword [eax + 0x2a0], 0
je 0x50fb4a
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x74db029c]
cmp byte [eax + 0x68], 0
jne 0x50fa99
mov eax, dword [ebp - 0x94]
add eax, 2
push eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x74db03ec]
mov eax, dword [eax + 4]
push eax
push 1
mov ecx, dword [ebp - 0x98]
inc ecx
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x74db02a0]
mov edx, dword [ebp - 0x40]
call 0x855e1f01
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x74db02a0]
mov eax, dword [eax + 0x38]
add eax, dword [ebp - 0x98]
add eax, 2
mov dword [ebp - 0x98], eax
jmp 0x510c2c
mov eax, dword [ebp - 0x1c]
cmp byte [eax + 0x2ac], 0
jne 0x50faf2
mov eax, dword [ebp - 0x1c]
cmp byte [eax + 0x314], 0
je 0x50faf2
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x74db02a0]
mov edx, dword [ebp - 0x8c]
sub edx, dword [eax + 0x34]
sub edx, 0xc
push edx
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x74db03ec]
mov eax, dword [eax + 4]
push eax
push 1
mov ecx, dword [ebp - 0x98]
add ecx, 2
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x74db02a0]
mov edx, dword [ebp - 0x40]
call 0x855e1f78
jmp 0x50fb2f
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x74db02a0]
mov edx, dword [ebp - 0x8c]
sub edx, dword [eax + 0x34]
dec edx
push edx
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x74db03ec]
mov eax, dword [eax + 4]
push eax
push 1
mov ecx, dword [ebp - 0x98]
add ecx, 2
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x74db02a0]
mov edx, dword [ebp - 0x40]
call 0x855e1fb7
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x74db02a0]
mov edx, dword [ebp - 0x8c]
sub edx, dword [eax + 0x34]
sub edx, 2
mov dword [ebp - 0x8c], edx
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x74db029c]
cmp byte [eax + 0x68], 0
jne 0x50fc49
add dword [ebp - 0x98], 2
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x74db03ec]
mov edx, dword [eax + 0x2c]
mov eax, dword [ebp - 0x40]
mov eax, dword [eax + 0x40]
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x74db02a0]
push eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x74db03ec]
mov edx, dword [eax + 0x2c]
mov eax, dword [ebp - 0x40]
mov eax, dword [eax + 0x40]
mov ecx, dword [eax]
call dword [ecx + 8]
mov dl, 1
mov eax, dword [0x456bcc]
call fcn.0045d108
mov dword [ebp - 0x44], eax
xor eax, eax
push ebp
push 0x510de4
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0xf4]
xor ecx, ecx
mov edx, 0x5c
call fcn.00404c9c
mov eax, dword [ebp - 0x40]
mov edx, dword [eax + 0x40]
mov eax, dword [ebp - 0x44]
mov ecx, dword [eax]
call dword [ecx + 8]
lea eax, [ebp - 0xf4]
push eax
push 0x5c
mov eax, dword [ebp - 0x44]
call fcn.0045d330
push eax
call fcn.0040cb78
mov dword [ebp - 0xec], 0xfffff574
mov eax, dword [ebp - 0x1c]
cmp byte [eax + 0x316], 0
je 0x510131
mov eax, dword [ebp - 0x1c]
cmp byte [eax + 0x2ac], 0
jne 0x510131
mov eax, dword [ebp - 0x1c]
cmp byte [eax + 0x314], 0
je 0x510131
lea edx, [ebp - 0x58]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax]
call dword [ecx + 0x54]
mov eax, dword [ebp - 0x1c]
cmp byte [eax + 0x27a], 0
jne 0x50ffd9
mov eax, dword [ebp - 0x1c]
cmp byte [eax + 0x27b], 0
je 0x50fff3
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x27c]
mov edx, eax
neg eax
add eax, eax
push eax
push eax
lea eax, [ebp - 0x58]
push eax
call fcn.0040d0c8
mov eax, dword [ebp - 0x1c]
cmp byte [eax + 0x3a9], 0
je 0x510007
sub dword [ebp - 0x50], 4
sub dword [ebp - 0x4c], 4
push 2
call fcn.0040d060
mov edx, dword [ebp - 0x50]
sub edx, eax
mov dword [ebp - 0x58], edx
push 0x15
call fcn.0040d060
mov edx, dword [ebp - 0x4c]
sub edx, eax
mov dword [ebp - 0x54], edx
mov eax, dword [ebp - 0x40]
mov eax, dword [eax + 0x44]
mov edx, 0x808080
call fcn.0045da74
mov eax, dword [ebp - 0x40]
mov eax, dword [eax + 0x44]
mov edx, 2
call fcn.0045dbc8
mov ecx, dword [ebp - 0x4c]
sub ecx, 0xb
mov edx, dword [ebp - 0x50]
mov eax, dword [ebp - 0x40]
mov ebx, dword [eax]
call dword [ebx + 0x5c]
mov edx, dword [ebp - 0x50]
sub edx, 0xb
mov ecx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x40]
mov ebx, dword [eax]
call dword [ebx + 0x58]
mov ecx, dword [ebp - 0x4c]
sub ecx, 6
mov edx, dword [ebp - 0x50]
mov eax, dword [ebp - 0x40]
mov ebx, dword [eax]
call dword [ebx + 0x5c]
mov edx, dword [ebp - 0x50]
sub edx, 7
mov ecx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x40]
mov ebx, dword [eax]
call dword [ebx + 0x58]
mov ecx, dword [ebp - 0x4c]
sub ecx, 3
mov edx, dword [ebp - 0x50]
mov eax, dword [ebp - 0x40]
mov ebx, dword [eax]
call dword [ebx + 0x5c]
mov edx, dword [ebp - 0x50]
sub edx, 3
mov ecx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x40]
mov ebx, dword [eax]
call dword [ebx + 0x58]
mov eax, dword [ebp - 0x40]
mov eax, dword [eax + 0x44]
mov edx, 0xffffff
call fcn.0045da74
mov eax, dword [ebp - 0x40]
mov eax, dword [eax + 0x44]
mov edx, 1
call fcn.0045dbc8
mov ecx, dword [ebp - 0x4c]
sub ecx, 0xc
mov edx, dword [ebp - 0x50]
mov eax, dword [ebp - 0x40]
mov ebx, dword [eax]
call dword [ebx + 0x5c]
mov edx, dword [ebp - 0x50]
sub edx, 0xc
mov ecx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x40]
mov ebx, dword [eax]
call dword [ebx + 0x58]
mov ecx, dword [ebp - 0x4c]
sub ecx, 8
mov edx, dword [ebp - 0x50]
mov eax, dword [ebp - 0x40]
mov ebx, dword [eax]
call dword [ebx + 0x5c]
mov edx, dword [ebp - 0x50]
sub edx, 8
mov ecx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x40]
mov ebx, dword [eax]
call dword [ebx + 0x58]
mov ecx, dword [ebp - 0x4c]
sub ecx, 4
mov edx, dword [ebp - 0x50]
mov eax, dword [ebp - 0x40]
mov ebx, dword [eax]
call dword [ebx + 0x5c]
mov edx, dword [ebp - 0x50]
sub edx, 4
mov ecx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x40]
mov ebx, dword [eax]
call dword [ebx + 0x58]
mov eax, dword [ebp - 0x1c]
cmp word [eax + 0x3d2], 0
je 0x510168
lea edx, [ebp - 0x104]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax]
call dword [ecx + 0x54]
lea eax, [ebp - 0x104]
push eax
mov ebx, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebx + 0x3d4]
call dword [ebx + 0x3d0]
rcl byte [ebp + 0x68], 0xff
and eax, 0xff640051
xor byte [ecx + ecx*4 + 0x20], ah
push edi
mov ecx, esi
movzx edx, word [ebp - 6]
mov eax, ebx
call fcn.004bc238
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 4]
push eax
mov ecx, edi
mov edx, esi
mov eax, ebx
call fcn.00511904
mov byte [ebx + 0x36a], 0x74
mov eax, dword [ebx + 0x74db029c]
cmp byte [eax + 0x14], 0
je 0x51114a
test byte [ebx + 0x1c], 0x10
jne 0x51114a
lea edx, [ebp - 0x1c]
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x54]
mov dword [ebp - 0xc], 0x7400000c
mov eax, dword [ebx + 0x74db029c]
mov eax, dword [eax + 0x24]
mov edx, dword [eax]
call dword [edx + 0x20]
test al, al
jne 0x510cc1
mov eax, dword [ebx + 0x74db029c]
mov eax, dword [eax + 0x28]
mov edx, dword [eax]
call dword [edx + 0x20]
test al, al
jne 0x510cc1
mov eax, dword [ebx + 0x74db029c]
mov eax, dword [eax + 0x24]
mov edx, dword [eax]
call dword [edx + 0x30]
mov dword [ebp - 0xc], eax
mov eax, dword [ebx + 0x74db029c]
mov eax, dword [eax + 0x2c]
mov edx, dword [eax]
call dword [edx + 0x20]
test al, al
jne 0x510cf6
mov eax, dword [ebx + 0x74db029c]
mov eax, dword [eax + 0x20]
mov edx, dword [eax]
call dword [edx + 0x20]
test al, al
jne 0x510cf6
mov eax, dword [ebx + 0x74db029c]
mov eax, dword [eax + 0x2c]
mov edx, dword [eax]
call dword [edx + 0x30]
mov dword [ebp - 0xc], eax
mov eax, dword [ebx + 0x74db029c]
cmp byte [eax + 0x39], 0xf
jne 0x510d14
mov eax, ebx
call fcn.0051338c
test al, al
je 0x510d14
mov dword [ebp - 0xc], 0x74000010
mov eax, dword [ebx + 0x74db029c]
cmp dword [eax + 0x6c], 0x1fffffff
je 0x752c0f11
cmp byte [eax + 0x48], 0
jne 0x510e29
lea ecx, [ebp - 0x34]
mov edx, edi
mov eax, esi
call fcn.004388b0
push dword [ebp - 0x30]
push dword [ebp - 0x34]
mov eax, dword [ebp - 0x18]
add eax, 2
add eax, dword [ebp - 0xc]
push eax
lea eax, [ebp - 0x44]
push eax
mov ecx, dword [ebp - 0x14]
sub ecx, 2
mov edx, dword [ebp - 0x18]
add edx, 2
mov eax, dword [ebp - 0x14]
sub eax, 2
sub eax, dword [ebp - 0xc]
call fcn.004388e0
lea eax, [ebp - 0x44]
push eax
call fcn.0040d1f0
test eax, eax
je 0x510d84
mov eax, dword [ebx + 0x74db029c]
cmp byte [eax + 0x68], 0
je 0x510dd7
lea ecx, [ebp - 0x34]
mov edx, edi
mov eax, esi
call fcn.004388b0
push dword [ebp - 0x30]
push dword [ebp - 0x34]
mov eax, dword [ebp - 0x18]
add eax, 2
add eax, dword [ebp - 0xc]
push eax
lea eax, [ebp - 0x44]
push eax
mov ecx, dword [ebp - 0x1c]
add ecx, 2
add ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 0x18]
add edx, 2
mov eax, dword [ebp - 0x1c]
add eax, 2
call fcn.004388e0
lea eax, [ebp - 0x44]
push eax
call fcn.0040d1f0
test eax, eax
je 0x510e06
mov eax, dword [ebx + 0x74db029c]
cmp byte [eax + 0x68], 1
jne 0x510e06
mov eax, dword [ebx + 0x74db029c]
cmp byte [eax + 0x15], 0
je 0x510e06
cmp byte [ebx + 0x10e5e9], 0
jne 0x510f11
mov byte [ebx + 0x3e9], 1
mov eax, ebx
mov edx, dword [eax]
call dword [edx - 0x7affff70]
jmp 0x511ff3
cmp byte [ebx + 0x10e5e9], 0
je 0x510f11
mov byte [ebx + 0x10e5e9], 0
mov eax, ebx
mov edx, dword [eax]
call dword [edx - 0x7affff70]
jmp 0x511ff3
lea ecx, [ebp - 0x34]
mov edx, edi
mov eax, esi
call fcn.004388b0
push dword [ebp - 0x30]
push dword [ebp - 0x34]
mov eax, dword [ebp - 0x18]
add eax, 2
add eax, dword [ebp - 0xc]
push eax
lea eax, [ebp - 0x44]
push eax
mov ecx, dword [ebp - 0x1c]
add ecx, dword [ebp - 0xc]
add ecx, 2
mov edx, dword [ebp - 0x18]
add edx, 2
mov eax, dword [ebp - 0x1c]
sbb al, 0x10
je 0x512002
mov edx, esi
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx - 0x10]
jmp 0x512042
mov eax, dword [esi + 8]
cmp byte [ebx + 0x349], 0x74
je 0x512020
mov edx, dword [eax + 8]
sub edx, dword [eax]
mov ecx, dword [ebx + 0x34c]
mov dword [eax], ecx
add edx, ecx
mov dword [eax + 8], edx
cmp byte [ebx + 0x34b], 0x74
je 0x51203d
mov edx, dword [eax + 0xc]
sub edx, dword [eax + 4]
mov ecx, dword [ebx - 0x7afffcb0]
mov dword [eax + 4], ecx
add edx, ecx
mov dword [eax + 0xc], edx
xor eax, eax
mov dword [esi + 0xc], eax
pop ecx
pop edx
pop esi
pop ebx
ret