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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x80
mov edi, edx
mov ebx, dword [ecx + 0x160]
cmp dword [ecx + 0x90], edx
je 0x508eee
mov eax, dword [ecx + 0x128]
mov dword [esp + 0x40], eax
add eax, 4
jmp 0x508efe
lea eax, [ecx + 0x11c]
mov dword [esp + 0x40], eax
lea eax, [ecx + 0x120]
mov dword [esp + 0x34], eax
mov eax, dword [ebp + 0x10]
mov esi, dword [ebp + 8]
lea edx, [ecx + 0xfc]
mov dword [esp + 0x5c], edx
lea edx, [ebx + 0x50]
mov dword [esp + 0x2c], edx
lea edx, [ebx + 0x5c]
mov dword [esp + 0xc], edx
lea edx, [ebx + 0x60]
mov dword [esp + 0x24], edx
lea edx, [ebx + 0x84]
mov dword [esp + 0x3c], edx
lea edx, [ecx + 0x11c]
mov dword [esp + 0x58], edx
lea edx, [ecx + 0x120]
mov dword [esp + 0x54], edx
lea edx, [ecx + 0x1a8]
mov dword [esp + 0x1c], edx
lea edx, [ecx + 0x19c]
mov dword [esp + 0x20], edx
mov dword [esp], ecx
mov dword [esp + 8], ebx
mov dword [esp + 0x10], edi
mov ecx, dword [esp + 0x40]
mov dword [ecx], esi
mov ecx, dword [ebp + 0x14]
mov edx, dword [esp + 0x34]
mov dword [edx], ecx
test eax, eax
mov dword [esp + 4], esi
jg 0x508faa
cmp byte [ebp + 0x1c], 0
je 0x508f89
test eax, eax
jne 0x50b7da
lea edx, [eax + 0xf]
cmp edx, 0xf
ja case.0x508f9b.14
mov edi, 0xf
mov ebx, 5
jmp dword [edx*4 + 0x56c4c8]
neg eax
mov ecx, dword [ebp + 0xc]
mov dword [ebp + 0x14], ecx
mov edi, eax
push dword [esp + 0x10]
push ecx
mov ebx, dword [esp + 0xc]
push ebx
push edi
mov eax, dword [esp + 0x6c]
push eax
call dword [eax]
add esp, 0x14
mov ecx, eax
add eax, 0xffffffff
cmp eax, 2
mov edx, dword [esp]
mov dword [esp + 0x28], ecx
jb 0x508fff
cmp ecx, 0x39
je 0x508fff
mov ecx, edx
mov edx, edi
push dword [ebp + 0x24]
push 0x11e5
push dword [ebp + 0x14]
push ebx
call fcn.0050bb10
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x10]
add esp, 0x10
test al, al
je 0x50b660
add ecx, 1
cmp ecx, 0x3d
ja case.default.0x509016
mov esi, edx
xor eax, eax
mov ebx, 1
mov dl, 1
jmp dword [ecx*4 + 0x56c508]
mov eax, dword [esp + 8]
cmp byte [eax + 0x80], 0
mov edx, esi
je case.default.0x509016
cmp dword [edx + 0x84], 0
je case.default.0x509016
cmp dword [esp + 0x28], 0x20
mov eax, str.NOTATION_
mov ecx, 0x56d522
cmove ecx, eax
cmp dword [edx + 0x148], 0
mov edi, 0x56d520
cmove edi, ecx
mov al, byte [edi]
test al, al
mov esi, dword [esp + 8]
je 0x50a1de
add edi, 1
jmp 0x5090a6
movzx eax, byte [edi - 1]
mov ecx, dword [esp + 0x1c]
mov ecx, dword [ecx]
lea edx, [ecx + 1]
mov ebx, dword [esp + 0x1c]
mov dword [ebx], edx
mov byte [ecx], al
movzx eax, byte [edi]
add edi, 1
test al, al
mov edx, dword [esp]
je 0x50a1de
mov ecx, dword [edx + 0x1a8]
cmp ecx, dword [edx + 0x1a4]
jne 0x50908a
mov ecx, dword [esp + 0x20]
call fcn.0050d0b0
test al, al
jne 0x509080
jmp 0x50baf6
mov eax, dword [esp + 8]
cmp byte [eax + 0x80], 0
mov edx, esi
je case.default.0x509016
mov ebx, dword [edx + 0x154]
mov edi, dword [edx + 0x158]
mov al, byte [edx + 0x15c]
mov byte [esp + 0x30], al
cmp byte [edx + 0x15d], 0
mov eax, dword [ebx + 0xc]
je 0x509131
mov esi, edx
test eax, eax
jle 0x509120
mov ecx, dword [ebx + 0x14]
mov edx, eax
nop word cs:[eax + eax]
cmp dword [ecx], edi
je 0x50ab40
add ecx, 0xc
add edx, 0xffffffff
jne 0x509110
cmp dword [ebx + 8], 0
mov edx, esi
jne 0x509131
cmp byte [edi + 9], 0
jne 0x509131
mov dword [ebx + 8], edi
cmp eax, dword [ebx + 0x10]
jne 0x50a32d
test eax, eax
je 0x50aafb
cmp eax, 0x3fffffff
jg 0x50baf6
lea esi, [eax + eax]
cmp esi, 0x15555555
ja 0x50baf6
shl eax, 3
lea eax, [eax + eax*2]
push eax
mov dword [esp + 0x48], ebx
push dword [ebx + 0x14]
mov eax, dword [esp + 8]
call dword [eax + 0x10]
add esp, 8
test eax, eax
mov ebx, 1
je case.0x508f9b.1
mov ebx, dword [esp + 0x44]
mov dword [ebx + 0x10], esi
mov dword [ebx + 0x14], eax
mov edx, dword [esp]
jmp 0x50ab19
mov eax, dword [esp + 8]
cmp byte [eax + 0x80], 0
mov edx, esi
je case.default.0x509016
movzx ebx, byte [edx + 0x15c]
mov ecx, edx
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0x40]
mov esi, dword [ebp + 0x14]
sub esi, eax
mov edi, dword [esp + 4]
add eax, edi
push 2
push dword [esp + 0x30]
push esi
push eax
push ebx
call fcn.005122c0
add esp, 0x14
test eax, eax
jne 0x50b7ab
mov eax, dword [esp + 0xc]
mov eax, dword [eax]
test bl, bl
je 0x50a347
mov ecx, dword [esp + 8]
cmp eax, dword [ecx + 0x58]
jne 0x509208
mov ecx, dword [esp + 0x2c]
call fcn.0050d0b0
test al, al
je 0x50baf6
mov eax, dword [esp + 0xc]
mov eax, dword [eax]
lea ecx, [eax + 1]
mov edx, dword [esp + 0xc]
mov dword [edx], ecx
mov byte [eax], 0
mov ecx, dword [esp + 0x24]
mov ebx, dword [ecx]
mov eax, dword [edx]
mov dword [ecx], eax
mov eax, dword [esp]
mov ecx, dword [eax + 0x154]
mov edi, dword [eax + 0x158]
mov al, byte [eax + 0x15c]
mov byte [esp + 0x44], al
mov dword [esp + 0x30], ecx
mov eax, dword [ecx + 0xc]
test ebx, ebx
je 0x509260
test eax, eax
jle 0x509260
mov ecx, dword [esp + 0x30]
mov ecx, dword [ecx + 0x14]
mov edx, eax
nop
cmp dword [ecx], edi
je 0x50ae98
add ecx, 0xc
add edx, 0xffffffff
jne 0x509250
mov edx, dword [esp + 0x30]
cmp eax, dword [edx + 0x10]
jne 0x50a36f
test eax, eax
je 0x50ae51
cmp eax, 0x3fffffff
jg 0x50baf6
lea esi, [eax + eax]
cmp esi, 0x15555555
ja 0x50baf6
mov dword [esp + 0x4c], ebx
shl eax, 3
lea eax, [eax + eax*2]
push eax
push dword [edx + 0x14]
mov eax, dword [esp + 8]
call dword [eax + 0x10]
add esp, 8
test eax, eax
mov ebx, 1
je case.0x508f9b.1
mov edx, dword [esp + 0x30]
mov dword [edx + 0x10], esi
mov dword [edx + 0x14], eax
mov ebx, dword [esp + 0x4c]
jmp 0x50ae73
mov eax, dword [esp + 8]
cmp byte [eax + 0xa0], 0
mov edx, esi
je case.default.0x509016
cmp dword [edx + 0x80], 0
je 0x50a335
push 0x14
mov esi, edx
call dword [edx + 0xc]
add esp, 4
test eax, eax
mov edi, dword [esp + 8]
je 0x50baf6
xor ecx, ecx
cmp dword [esp + 0x28], 0x29
sete cl
add ecx, 1
xorps xmm0, xmm0
movups xmmword [eax + 4], xmm0
mov dword [eax], ecx
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 4]
mov dword [ecx], edx
mov ecx, dword [esi + 0x154]
push eax
push dword [ecx]
push dword [esi + 4]
call dword [esi + 0x80]
add esp, 0xc
xor ecx, ecx
mov edx, esi
mov byte [edi + 0xa0], 0
jmp 0x50ad42
mov edi, dword [esp + 8]
mov byte [edi + 0x81], 1
cmp dword [esi + 0x1e8], 0
lea ebx, [esp + 0x18]
je 0x50a19e
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x40]
mov eax, dword [esp + 4]
add eax, ecx
mov dword [esp + 0x18], eax
mov esi, dword [ebp + 0x14]
mov eax, dword [esp + 0xc]
cmp dword [eax], 0
jne 0x509394
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x2c]
call fcn.0050d0b0
mov ecx, dword [esp + 0x30]
test al, al
je 0x50baf6
sub esi, ecx
nop word cs:[eax + eax]
push dword [edi + 0x58]
push dword [esp + 0x10]
push esi
push ebx
mov eax, dword [esp + 0x20]
push eax
call dword [eax + 0x38]
add esp, 0x14
cmp eax, 2
jb 0x50a210
mov ecx, dword [esp + 0x2c]
call fcn.0050d0b0
test al, al
jne 0x5093a0
jmp 0x50baf6
cmp edi, 0xe
mov edx, esi
je 0x50b340
jmp case.default.0x509016
mov ecx, esi
xor edx, edx
jmp 0x509fb8
mov edx, esi
cmp dword [esi + 0x54], 0
jne 0x50b340
jmp case.default.0x509016
cmp dword [esi + 0x54], 0
je 0x50a377
mov esi, dword [ebp + 0x14]
mov eax, dword [esp + 4]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x1c]
cmp dword [eax], 0
mov edi, dword [esp + 0x10]
lea ebx, [esp + 0x18]
jne 0x50b1a8
jmp 0x50b197
mov byte [esi + 0x1e5], 0
mov ebx, dword [esp + 8]
mov byte [ebx + 0x81], 1
cmp dword [esi + 0x54], 0
je 0x50a38a
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0x40]
mov eax, dword [esp + 4]
add eax, edi
mov dword [esp + 0x18], eax
mov esi, dword [ebp + 0x14]
mov eax, dword [esp + 0x1c]
cmp dword [eax], 0
jne 0x509472
mov ecx, dword [esp + 0x20]
call fcn.0050d0b0
test al, al
je 0x50b78a
sub esi, edi
nop word cs:[eax + eax]
nop
mov eax, dword [esp]
push dword [eax + 0x1a4]
push dword [esp + 0x20]
push esi
lea eax, [esp + 0x24]
push eax
mov eax, dword [esp + 0x20]
push eax
call dword [eax + 0x38]
add esp, 0x14
cmp eax, 2
jb 0x50a414
mov ecx, dword [esp + 0x20]
call fcn.0050d0b0
test al, al
jne 0x509480
jmp 0x50b78a
mov byte [esi + 0x1e5], 0
mov ecx, esi
mov edx, dword [esp + 0x3c]
push 0x24
push 0x56d17b
call fcn.0050c6a0
add esp, 8
mov dword [esi + 0x138], eax
test eax, eax
je 0x50baf6
mov ecx, esi
mov eax, dword [esp + 8]
mov byte [eax + 0x81], 1
cmp dword [esi + 0x54], 0
je case.0x509016.14
push dword [esp + 0x40]
push dword [ebp + 0x14]
mov edi, dword [esp + 0xc]
push edi
mov esi, dword [esp + 0x1c]
push esi
call dword [esi + 0x34]
add esp, 0x10
test eax, eax
lea ebx, [esp + 0x18]
je 0x50b843
mov ecx, dword [esi + 0x40]
lea eax, [edi + ecx]
mov dword [esp + 0x18], eax
mov esi, dword [ebp + 0x14]
mov eax, dword [esp + 0x1c]
cmp dword [eax], 0
jne 0x509548
mov edi, ecx
mov ecx, dword [esp + 0x20]
call fcn.0050d0b0
mov ecx, edi
test al, al
je 0x50baf6
sub esi, ecx
nop word [eax + eax]
mov eax, dword [esp]
push dword [eax + 0x1a4]
push dword [esp + 0x20]
push esi
push ebx
mov eax, dword [esp + 0x20]
push eax
call dword [eax + 0x38]
add esp, 0x14
cmp eax, 2
jb 0x50a6cc
mov ecx, dword [esp + 0x20]
call fcn.0050d0b0
test al, al
jne 0x509550
jmp 0x50baf6
push dword [esp + 0x40]
push dword [ebp + 0x14]
push dword [esp + 0xc]
mov edi, dword [esp + 0x1c]
push edi
call dword [edi + 0x34]
mov edx, esi
add esp, 0x10
mov cl, 1
test eax, eax
mov eax, dword [esp + 8]
lea ebx, [esp + 0x18]
je 0x50b843
cmp byte [eax + 0x80], 0
je 0x50ad42
cmp dword [edx + 0x138], 0
je 0x50ad42
mov dword [esp + 0x38], ecx
mov edi, dword [edi + 0x40]
mov eax, dword [esp + 4]
add eax, edi
mov dword [esp + 0x18], eax
mov esi, dword [ebp + 0x14]
mov eax, dword [esp + 0xc]
cmp dword [eax], 0
jne 0x5095f7
mov ecx, dword [esp + 0x2c]
call fcn.0050d0b0
test al, al
je 0x50baf6
sub esi, edi
nop dword [eax]
mov eax, dword [esp + 8]
push dword [eax + 0x58]
push dword [esp + 0x10]
push esi
push ebx
mov eax, dword [esp + 0x20]
push eax
call dword [eax + 0x38]
add esp, 0x14
cmp eax, 2
jb 0x50a573
mov ecx, dword [esp + 0x2c]
call fcn.0050d0b0
test al, al
jne 0x509600
jmp 0x50baf6
mov edx, esi
mov eax, dword [esi + 0x54]
test eax, eax
je case.default.0x509016
push 1
push dword [edx + 0x144]
push dword [edx + 0x140]
push dword [edx + 0x13c]
push dword [edx + 4]
mov esi, edx
call eax
add esp, 0x14
mov dword [esi + 0x13c], 0
mov eax, dword [esi + 0x19c]
mov ecx, dword [esi + 0x1a0]
test ecx, ecx
je 0x50a80a
test eax, eax
je 0x50a810
nop word cs:[eax + eax]
nop
mov edx, dword [eax]
mov dword [eax], ecx
mov dword [esi + 0x1a0], eax
mov ecx, eax
mov eax, edx
test edx, edx
jne 0x509690
jmp 0x50a810
cmp byte [ebp + 0x20], 1
jne 0x50b953
mov edx, esi
mov eax, dword [esi + 0x13c]
test eax, eax
je 0x50a3fc
push 0
push dword [edx + 0x144]
push dword [edx + 0x140]
push eax
push dword [edx + 4]
mov esi, edx
call dword [edx + 0x54]
add esp, 0x14
mov eax, dword [esi + 0x19c]
mov ecx, dword [esi + 0x1a0]
test ecx, ecx
mov ebx, dword [esp + 8]
je 0x50a904
test eax, eax
je 0x50a90a
nop dword [eax + eax]
mov edx, dword [eax]
mov dword [eax], ecx
mov dword [esi + 0x1a0], eax
mov ecx, eax
mov eax, edx
test edx, edx
jne 0x509700
jmp 0x50a90a
push dword [ebp + 0x14]
push dword [esp + 8]
mov edi, dword [esp + 0x18]
push edi
call dword [edi + 0x2c]
add esp, 0xc
test eax, eax
jne 0x50a3b4
mov ebx, dword [esp + 8]
cmp byte [ebx + 0x80], 0
je 0x50b01a
mov esi, dword [ebp + 0x14]
mov eax, dword [esp + 4]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0xc]
cmp dword [eax], 0
jne 0x50b254
jmp 0x50b243
mov edi, dword [esp + 8]
cmp byte [edi + 0x80], 0
lea ebx, [esp + 0x18]
je 0x50a3a8
mov esi, dword [ebp + 0x14]
mov eax, dword [esp + 4]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0xc]
cmp dword [eax], 0
jne 0x50b383
jmp 0x50b372
mov eax, dword [esp + 8]
cmp byte [eax + 0x80], 0
mov edx, esi
je case.default.0x509016
cmp dword [edx + 0x88], 0
jne 0x50b340
jmp case.default.0x509016
mov eax, dword [esp + 8]
cmp byte [eax + 0x80], 0
mov edx, esi
je case.default.0x509016
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0x40]
mov ebx, dword [esp + 4]
lea esi, [ebx + eax]
mov edi, dword [ebp + 0x14]
sub edi, eax
mov ecx, dword [esp]
push 2
push edi
push esi
mov esi, dword [esp + 0xc]
call fcn.0050d240
add esp, 0xc
mov edi, eax
mov eax, dword [esi + 0x138]
mov edx, dword [esp + 8]
mov ecx, dword [edx + 0x78]
test eax, eax
je 0x50a841
mov dword [eax + 4], ecx
mov eax, dword [edx + 0x74]
sub eax, dword [edx + 0x78]
mov ecx, dword [esi + 0x138]
mov dword [ecx + 8], eax
mov eax, dword [edx + 0x74]
mov dword [edx + 0x78], eax
cmp dword [esi + 0x88], 0
mov edx, esi
je 0x50b00b
mov eax, dword [esp + 0x34]
mov dword [eax], ebx
mov eax, dword [edx + 0x138]
movzx ecx, byte [eax + 0x21]
push 0
push 0
push 0
push dword [edx + 0x164]
push dword [eax + 8]
push dword [eax + 4]
push ecx
push dword [eax]
push dword [edx + 4]
mov esi, edx
call dword [edx + 0x88]
mov edx, esi
add esp, 0x24
xor ecx, ecx
jmp 0x50b00d
mov eax, dword [esp + 8]
cmp byte [eax + 0x80], 0
mov edx, esi
je case.default.0x509016
cmp dword [edx + 0x138], 0
je case.default.0x509016
cmp dword [edx + 0x88], 0
je case.default.0x509016
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 4]
mov dword [eax], ecx
mov eax, dword [edx + 0x138]
movzx ecx, byte [eax + 0x21]
push 0
push dword [eax + 0x18]
push dword [eax + 0x10]
push dword [eax + 0x14]
push 0
push 0
push ecx
jmp 0x50b54d
mov eax, dword [esp + 8]
cmp byte [eax + 0x80], 0
mov edx, esi
je case.default.0x509016
cmp dword [edx + 0x138], 0
je case.default.0x509016
mov esi, dword [ebp + 0x14]
mov eax, dword [esp + 4]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0xc]
cmp dword [eax], 0
mov edi, dword [esp + 0x10]
lea ebx, [esp + 0x18]
jne 0x50b463
jmp 0x50b456
mov edx, esi
cmp dword [esi + 0x60], 0
jne 0x50b340
jmp case.default.0x509016
mov edx, esi
mov dword [esi + 0x150], 0
mov dword [esi + 0x14c], 0
cmp dword [esi + 0x60], 0
je case.default.0x509016
mov esi, dword [ebp + 0x14]
mov eax, dword [esp + 4]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x1c]
cmp dword [eax], 0
mov edi, dword [esp + 0x10]
lea ebx, [esp + 0x18]
jne 0x50b579
jmp 0x50b568
mov cl, 1
cmp dword [esi + 0x14c], 0
je 0x50aa95
cmp dword [esi + 0x60], 0
mov eax, dword [esp + 0x10]
lea ebx, [esp + 0x18]
je 0x50aa95
mov edi, dword [eax + 0x40]
mov eax, dword [esp + 4]
add eax, edi
mov dword [esp + 0x18], eax
mov esi, dword [ebp + 0x14]
mov eax, dword [esp + 0x1c]
cmp dword [eax], 0
jne 0x5099a5
mov ecx, dword [esp + 0x20]
call fcn.0050d0b0
test al, al
je 0x50baf6
sub esi, edi
nop word [eax + eax]
mov eax, dword [esp]
push dword [eax + 0x1a4]
push dword [esp + 0x20]
push esi
push ebx
mov eax, dword [esp + 0x20]
push eax
call dword [eax + 0x38]
add esp, 0x14
cmp eax, 2
jb 0x50aa16
mov ecx, dword [esp + 0x20]
call fcn.0050d0b0
test al, al
jne 0x5099b0
jmp 0x50baf6
mov bl, 1
cmp dword [esi + 0x150], 0
je 0x509a1f
cmp dword [esi + 0x60], 0
mov ecx, dword [esp + 4]
je 0x509a1f
mov eax, dword [esp + 0x34]
mov dword [eax], ecx
push dword [esi + 0x150]
push 0
push dword [esi + 0x164]
push dword [esi + 0x14c]
push dword [esi + 4]
call dword [esi + 0x60]
add esp, 0x14
xor ebx, ebx
mov eax, dword [esi + 0x19c]
mov ecx, dword [esi + 0x1a0]
test ecx, ecx
je 0x50a3c5
test eax, eax
je 0x50a3cb
nop dword [eax + eax]
mov edx, dword [eax]
mov dword [eax], ecx
mov dword [esi + 0x1a0], eax
mov ecx, eax
mov eax, edx
test edx, edx
jne 0x509a40
jmp 0x50a3cb
push dword [esp + 0x40]
push dword [ebp + 0x14]
push dword [esp + 0xc]
mov eax, dword [esp + 0x1c]
push eax
call dword [eax + 0x34]
add esp, 0x10
test eax, eax
je 0x50b843
mov edx, esi
cmp dword [esi + 0x14c], 0
je case.default.0x509016
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0x40]
mov eax, dword [esp + 4]
add eax, edi
mov esi, dword [ebp + 0x14]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x1c]
cmp dword [eax], 0
lea ebx, [esp + 0x18]
jne 0x509ab6
mov ecx, dword [esp + 0x20]
call fcn.0050d0b0
test al, al
je 0x50baf6
sub esi, edi
nop dword [eax + eax]
mov eax, dword [esp]
push dword [eax + 0x1a4]
push dword [esp + 0x20]
push esi
push ebx
mov eax, dword [esp + 0x20]
push eax
call dword [eax + 0x38]
add esp, 0x14
cmp eax, 2
jb 0x50a61c
mov ecx, dword [esp + 0x20]
call fcn.0050d0b0
test al, al
jne 0x509ac0
jmp 0x50baf6
mov ecx, esi
mov edx, dword [esp + 0x10]
push dword [ebp + 0x14]
push dword [esp + 8]
call fcn.0050ce70
add esp, 8
mov dword [esi + 0x158], eax
test eax, eax
je 0x50baf6
mov edx, esi
mov word [esi + 0x15c], 0
mov dword [esi + 0x148], 0
jmp 0x509bef
mov edx, esi
mov byte [esi + 0x15c], 1
mov dword [esi + 0x148], 0x56d4df
jmp 0x509bef
mov edx, esi
mov byte [esi + 0x15d], 1
mov dword [esi + 0x148], 0x56d4e5
jmp 0x509bef
mov edx, esi
mov dword [esi + 0x148], 0x56d4e8
jmp 0x509bef
mov edx, esi
mov dword [esi + 0x148], 0x56d4ee
jmp 0x509bef
mov edx, esi
mov dword [esi + 0x148], 0x56d4f5
jmp 0x509bef
mov edx, esi
mov dword [esi + 0x148], 0x56d4fc
jmp 0x509bef
mov edx, esi
mov dword [esi + 0x148], 0x56d505
jmp 0x509bef
mov edx, esi
mov dword [esi + 0x148], 0x56d50d
jmp 0x509bef
mov eax, dword [esp + 8]
cmp byte [eax + 0x80], 0
mov edx, esi
jne 0x509c00
jmp case.default.0x509016
mov ecx, esi
mov edx, dword [esp + 0x10]
push dword [ebp + 0x14]
push dword [esp + 8]
call fcn.0050cd90
mov edx, esi
add esp, 8
mov dword [esi + 0x154], eax
test eax, eax
je 0x50baf6
mov eax, dword [esp + 8]
cmp byte [eax + 0x80], 0
je case.default.0x509016
cmp dword [edx + 0x84], 0
jne 0x50b340
jmp case.default.0x509016
mov edx, esi
cmp dword [esi + 0x80], 0
je case.default.0x509016
mov ecx, edx
mov edi, dword [esp + 0x10]
mov esi, edx
mov edx, edi
push dword [ebp + 0x14]
push dword [esp + 8]
call fcn.0050cd90
add esp, 8
mov dword [esi + 0x154], eax
test eax, eax
je 0x50baf6
mov edx, esi
mov eax, dword [esp + 8]
mov dword [eax + 0xb4], 0
mov dword [eax + 0xb0], 0
mov byte [eax + 0xa0], 1
jmp 0x50b344
mov eax, dword [esp + 8]
cmp byte [eax + 0xa0], 0
mov edx, esi
je case.default.0x509016
mov esi, edx
mov edx, dword [esp + 8]
mov eax, dword [edx + 0xb8]
mov ecx, dword [edx + 0xa4]
mov edx, dword [edx + 0xb4]
mov eax, dword [eax + edx*4 - 4]
lea edx, [eax + eax*8]
lea edx, [edx + edx*2]
add edx, eax
mov dword [ecx + edx], 3
mov edx, esi
cmp dword [esi + 0x80], 0
jne 0x50b340
jmp case.default.0x509016
mov edx, esi
mov eax, dword [esi + 0x1d0]
cmp dword [esi + 0x100], eax
mov edi, dword [esp + 8]
jb 0x50ac8b
test eax, eax
je 0x50ac67
js 0x50baf6
mov ecx, dword [edx + 0x1cc]
add eax, eax
mov dword [edx + 0x1d0], eax
push eax
push ecx
mov esi, edx
call dword [edx + 0x10]
add esp, 8
test eax, eax
je 0x50b97f
mov dword [esi + 0x1cc], eax
mov eax, dword [edi + 0xb8]
test eax, eax
mov edx, esi
je 0x50ac8b
mov ecx, dword [edx + 0x1d0]
cmp ecx, 0x3fffffff
ja 0x50baf6
shl ecx, 2
push ecx
push eax
call dword [edx + 0x10]
add esp, 8
test eax, eax
mov ebx, 1
je case.0x508f9b.1
mov dword [edi + 0xb8], eax
mov edx, dword [esp]
jmp 0x50ac8b
mov eax, 2
jmp case.0x509016.45
mov eax, 1
jmp case.0x509016.45
mov eax, 3
mov ecx, dword [esp + 8]
cmp byte [ecx + 0xa0], 0
mov edx, esi
je case.default.0x509016
mov ecx, dword [edx + 0x80]
mov dword [esp + 0x28], ecx
test ecx, ecx
mov ebx, dword [esp + 8]
mov edx, dword [ebx + 0xa4]
mov esi, dword [ebx + 0xb4]
lea edi, [esi - 1]
mov dword [ebx + 0xb4], edi
mov edi, dword [ebx + 0xb8]
mov esi, dword [edi + esi*4 - 4]
lea edi, [esi + esi*8]
lea edi, [edi + edi*2]
sete cl
mov dword [esp + 0x38], ecx
add edi, esi
mov dword [edx + edi + 4], eax
cmp dword [ebx + 0xb4], 0
je 0x50a013
mov edx, dword [esp]
jmp 0x50ad3e
mov eax, dword [esi + 0x100]
mov ecx, dword [esi + 0x1cc]
mov dl, byte [ecx + eax]
cmp dl, 0x2c
je 0x50b857
mov edi, dword [esp + 8]
cmp byte [edi + 0xa0], 0
mov bl, 1
je 0x509e41
test dl, dl
jne 0x509e41
mov esi, dword [edi + 0xb8]
mov edx, dword [edi + 0xa4]
mov edi, dword [edi + 0xb4]
mov edi, dword [esi + edi*4 - 4]
lea esi, [edi + edi*8]
lea esi, [esi + esi*2]
add esi, edi
cmp dword [edx + esi], 3
je 0x509e41
add edx, esi
mov dword [edx], 5
mov ecx, dword [esp]
cmp dword [ecx + 0x80], 0
sete bl
mov eax, dword [ecx + 0x100]
mov ecx, dword [ecx + 0x1cc]
mov byte [ecx + eax], 0x7c
mov edx, dword [esp]
mov ecx, ebx
jmp 0x50ad42
mov eax, dword [esi + 0x100]
mov ecx, dword [esi + 0x1cc]
cmp byte [ecx + eax], 0x7c
je 0x50b857
mov edx, esi
mov byte [ecx + eax], 0x2c
mov eax, dword [esp + 8]
cmp byte [eax + 0xa0], 0
je case.default.0x509016
cmp dword [edx + 0x80], 0
jne 0x50b340
jmp case.default.0x509016
mov eax, dword [esp + 8]
cmp byte [eax + 0xa0], 0
mov edx, esi
je case.default.0x509016
xor ebx, ebx
mov esi, dword [ebp + 0x14]
jmp 0x509ed1
mov ebx, 2
jmp case.0x509016.53
mov ebx, 3
mov eax, dword [esp + 8]
cmp byte [eax + 0xa0], 0
mov edx, esi
je case.default.0x509016
mov esi, dword [ebp + 0x14]
mov edi, dword [esp + 0x10]
sub esi, dword [edi + 0x40]
mov ecx, dword [esp]
call fcn.0050ddf0
test eax, eax
js 0x50baf6
mov dword [esp + 0x28], esi
mov esi, dword [esp + 8]
mov ecx, dword [esi + 0xa4]
lea edx, [eax + eax*8]
lea edi, [edx + edx*2]
add edi, eax
mov dword [ecx + edi], 4
mov eax, dword [esi + 0xa4]
mov dword [eax + edi + 4], ebx
mov ecx, dword [esp]
mov edx, dword [esp + 0x10]
push dword [esp + 0x28]
push dword [esp + 8]
call fcn.0050cd90
add esp, 8
test eax, eax
je 0x50baf6
mov ecx, dword [eax]
mov eax, dword [esi + 0xa4]
mov dword [eax + edi + 8], ecx
xor eax, eax
nop word cs:[eax + eax]
nop
cmp byte [ecx + eax], 0
lea eax, [eax + 1]
jne 0x509f40
add eax, dword [esi + 0xa8]
mov ebx, 1
jb case.0x508f9b.1
mov dword [esi + 0xa8], eax
mov edx, dword [esp]
cmp dword [edx + 0x80], 0
jne 0x50b340
jmp case.default.0x509016
mov ecx, esi
mov edi, dword [esp + 0x10]
mov edx, edi
push dword [ebp + 0x14]
push dword [esp + 8]
call fcn.0050e320
jmp 0x509f9f
mov ecx, esi
mov edi, dword [esp + 0x10]
mov edx, edi
push dword [ebp + 0x14]
push dword [esp + 8]
call fcn.0050e620
mov edx, esi
add esp, 8
test eax, eax
jne 0x50b344
jmp 0x50baf6
mov ecx, esi
mov edx, 1
push dword [ebp + 0x14]
push dword [esp + 8]
call fcn.0050c000
add esp, 8
test eax, eax
jne 0x50b7ab
mov edi, dword [esi + 0x90]
jmp 0x50adee
mov ecx, esi
mov eax, dword [esi + 0x50]
test eax, eax
mov edi, dword [esp + 0x10]
je 0x50a8d0
mov esi, dword [ebp + 0x14]
mov edx, dword [esp + 4]
mov dword [esp + 0x18], edx
cmp byte [edi + 0x44], 0
je 0x50a84d
sub esi, edx
push esi
push edx
push dword [ecx + 4]
mov esi, ecx
call eax
add esp, 0xc
jmp 0x50a8ce
cmp dword [esp + 0x28], 0
mov edx, dword [esp]
je 0x50a317
mov ecx, dword [edx + 0x160]
mov eax, dword [ecx + 0xb0]
cmp eax, 0xccccccc
ja 0x50baf6
shl eax, 2
lea eax, [eax + eax*4]
add eax, dword [ecx + 0xa8]
jb 0x50baf6
mov dword [esp + 0x28], ecx
push eax
call dword [edx + 0xc]
add esp, 4
test eax, eax
mov ebx, 1
je case.0x508f9b.1
mov ecx, eax
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 0xb0]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*4]
mov dword [ecx + 0xc], 0
mov dword [esp + 0x50], ecx
mov dword [esp + 0x4c], eax
cmp eax, ecx
jbe 0x50a2ec
mov eax, dword [esp + 0x50]
mov edx, eax
add edx, 0x14
mov edi, eax
mov ecx, dword [esp + 0x4c]
jmp 0x50a0ad
mov edi, dword [esp + 0x30]
add edi, 0x14
cmp edi, dword [esp + 0x4c]
jae 0x50a2ec
mov dword [esp + 0x30], edi
mov ebx, dword [edi + 0xc]
mov eax, dword [esp + 0x28]
mov esi, dword [eax + 0xa4]
mov dword [esp + 0x44], esi
lea esi, [ebx + ebx*8]
lea esi, [esi + esi*2]
add esi, ebx
mov ebx, dword [esp + 0x44]
mov ebx, dword [ebx + esi]
mov dword [edi], ebx
mov edi, dword [eax + 0xa4]
mov edi, dword [edi + esi + 4]
mov eax, dword [esp + 0x30]
mov dword [eax + 4], edi
mov edi, dword [esp + 0x30]
cmp ebx, 4
jne 0x50a130
mov dword [edi + 8], ecx
mov eax, dword [esp + 0x28]
mov edi, dword [eax + 0xa4]
mov esi, dword [edi + esi + 8]
nop
movzx ebx, byte [esi]
mov byte [ecx], bl
add ecx, 1
cmp byte [esi], 0
lea esi, [esi + 1]
jne 0x50a100
mov edi, dword [esp + 0x30]
mov dword [edi + 0xc], 0
mov dword [edi + 0x10], 0
jmp 0x50a0a0
mov dword [edi + 8], 0
mov eax, edi
mov ebx, dword [esp + 0x28]
mov edi, dword [ebx + 0xa4]
mov edi, dword [edi + esi + 0x14]
mov dword [eax + 0xc], edi
mov dword [eax + 0x10], edx
test edi, edi
je 0x50a09c
mov eax, ebx
mov edi, dword [ebx + 0xa4]
lea ebx, [edi + esi]
add ebx, 0xc
xor esi, esi
mov eax, dword [esp + 0x30]
nop dword [eax]
mov edi, dword [ebx]
mov dword [edx + 0xc], edi
lea ebx, [edi + edi*8]
lea ebx, [ebx + ebx*2]
add ebx, edi
mov edi, dword [esp + 0x28]
mov edi, dword [edi + 0xa4]
add ebx, edi
add ebx, 0x18
add edx, 0x14
add esi, 1
cmp esi, dword [eax + 0xc]
jb 0x50a170
mov edi, eax
jmp 0x50a0a0
mov edx, esi
mov al, byte [edi + 0x82]
mov byte [edi + 0x80], al
mov cl, 1
test al, al
jne 0x50ad42
mov edi, ecx
mov ecx, dword [edx + 0x6c]
test ecx, ecx
je 0x50b14e
push dword [edx + 4]
mov esi, edx
call ecx
mov edx, esi
add esp, 4
test eax, eax
mov ecx, edi
jne 0x50ad42
jmp 0x50b949
cmp dword [edx + 0x1ac], 0
je 0x50baf6
mov esi, dword [ebp + 0x14]
mov eax, dword [esp + 4]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x1c]
cmp dword [eax], 0
mov edi, dword [esp + 0x10]
lea ebx, [esp + 0x18]
jne 0x50b60f
jmp 0x50b5fe
mov eax, dword [esp + 0x24]
cmp dword [eax], 0
je 0x50baf6
mov ecx, edi
mov eax, dword [edi + 0x5c]
cmp eax, dword [edi + 0x58]
jne 0x50a23e
mov ecx, dword [esp + 0x2c]
call fcn.0050d0b0
test al, al
je 0x50baf6
mov eax, dword [esp + 0xc]
mov eax, dword [eax]
lea ecx, [eax + 1]
mov edx, dword [esp + 0xc]
mov dword [edx], ecx
mov byte [eax], 0
mov eax, dword [esp + 0x24]
mov esi, dword [eax]
test esi, esi
mov ebx, 1
je case.0x508f9b.1
mov ebx, dword [esp]
mov ecx, ebx
mov edx, dword [esp + 0x3c]
push 0
push esi
call fcn.0050c6a0
mov edx, ebx
add esp, 8
mov ebx, eax
mov eax, dword [esp + 0x24]
mov eax, dword [eax]
mov ecx, dword [esp + 0xc]
mov dword [ecx], eax
cmp dword [edx + 0x10c], 0
mov eax, edi
mov ecx, dword [esp + 0x28]
je 0x50a2aa
cmp byte [eax + 0x82], 0
je 0x50b02d
cmp dword [edx + 0x128], 0
je 0x50b03a
test ebx, ebx
jne 0x50b04c
mov edi, eax
mov al, byte [eax + 0x82]
mov byte [edi + 0x80], al
cmp ecx, 0x3c
jne case.default.0x509016
mov eax, dword [edx + 0x78]
test eax, eax
je case.default.0x509016
push 1
push esi
push dword [edx + 4]
mov esi, edx
call eax
mov edx, esi
add esp, 0xc
mov edi, dword [esp + 0x10]
jmp 0x50b344
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 4]
mov dword [eax], ecx
mov esi, dword [esp]
mov eax, dword [esi + 0x154]
push dword [esp + 0x50]
push dword [eax]
push dword [esi + 4]
call dword [esi + 0x80]
mov edx, esi
add esp, 0xc
mov ebx, dword [esp + 8]
mov byte [ebx + 0xa0], 0
mov dword [ebx + 0xa8], 0
jmp 0x50ad3e
mov eax, dword [ebx + 0x14]
jmp 0x50ab19
mov cl, 1
mov edi, dword [esp + 8]
mov byte [edi + 0xa0], 0
jmp 0x50ad42
mov ecx, dword [esp + 0x24]
cmp eax, dword [ecx]
mov ecx, dword [esp + 8]
je 0x5091ec
cmp byte [eax - 1], 0x20
jne 0x5091ec
add eax, 0xffffffff
mov edx, dword [esp + 0xc]
mov dword [edx], eax
jmp 0x5091ec
mov eax, dword [edx + 0x14]
jmp 0x50ae73
mov edx, esi
mov cl, 1
mov dword [esi + 0x140], 0
jmp 0x50ad42
mov dword [esi + 0x140], 0x56d17b
mov cl, 1
cmp byte [ebx + 0x82], 0
jne 0x50a4a4
jmp 0x50a480
mov eax, dword [esp + 0x24]
mov eax, dword [eax]
mov ecx, dword [esp + 0xc]
mov dword [ecx], eax
mov edx, esi
mov dword [esi + 0x138], 0
jmp case.default.0x509016
mov dword [esi + 0x1a0], eax
mov dword [esi + 0x19c], 0
mov dword [esi + 0x1ac], 0
mov dword [esi + 0x1a8], 0
mov dword [esi + 0x1a4], 0
mov edx, esi
mov ecx, ebx
jmp 0x50ad42
mov cl, 1
mov ebx, dword [esp + 8]
cmp dword [edx + 0x140], 0
jne 0x50a94c
jmp 0x50a93f
mov esi, dword [esp]
cmp dword [esi + 0x1ac], 0
je 0x50b78d
mov eax, dword [esi + 0x1a8]
cmp eax, dword [esi + 0x1a4]
jne 0x50a449
mov ecx, dword [esp + 0x20]
call fcn.0050d0b0
test al, al
je 0x50b78d
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
lea ecx, [eax + 1]
mov dword [esi + 0x1a8], ecx
mov byte [eax], 0
mov eax, dword [esi + 0x1ac]
mov dword [esi + 0x140], eax
test eax, eax
je 0x50baf6
mov eax, dword [esi + 0x1a8]
mov dword [esi + 0x1ac], eax
xor ecx, ecx
cmp byte [ebx + 0x82], 0
jne 0x50a4a4
cmp dword [esi + 0x1e8], 0
jne 0x50a4a4
mov eax, dword [esi + 0x6c]
test eax, eax
je 0x50a4a4
push dword [esi + 4]
mov edi, ecx
call eax
mov ecx, edi
add esp, 4
test eax, eax
je 0x50b949
mov edi, ecx
cmp dword [esi + 0x138], 0
jne 0x50a4d9
mov ecx, esi
mov edx, dword [esp + 0x3c]
push 0x24
push 0x56d17b
call fcn.0050c6a0
add esp, 8
mov dword [esi + 0x138], eax
test eax, eax
je 0x50baf6
mov dword [eax + 0x18], 0
mov edx, edi
mov dword [esp + 0x38], edx
mov edi, dword [esp + 8]
cmp byte [edi + 0x80], 0
je 0x50a561
cmp dword [esi + 0x138], 0
je 0x50a56c
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x40]
mov eax, dword [esp + 4]
add eax, ecx
mov dword [esp + 0x18], eax
mov esi, dword [ebp + 0x14]
mov eax, dword [esp + 0xc]
cmp dword [eax], 0
lea ebx, [esp + 0x18]
jne 0x50a52b
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x2c]
call fcn.0050d0b0
mov ecx, dword [esp + 0x30]
test al, al
je 0x50a55a
sub esi, ecx
nop dword [eax]
push dword [edi + 0x58]
push dword [esp + 0x10]
push esi
push ebx
mov eax, dword [esp + 0x20]
push eax
call dword [eax + 0x38]
add esp, 0x14
cmp eax, 2
jb 0x50a780
mov ecx, dword [esp + 0x2c]
call fcn.0050d0b0
test al, al
jne 0x50a530
xor esi, esi
jmp 0x50a7b8
mov ecx, dword [esp + 0x38]
mov edx, esi
jmp 0x50ad42
mov edx, esi
jmp 0x50ad3e
mov eax, dword [esp + 0x24]
cmp dword [eax], 0
je 0x50baf6
mov ecx, dword [esp + 8]
mov eax, dword [ecx + 0x5c]
cmp eax, dword [ecx + 0x58]
jne 0x50a5a3
mov ecx, dword [esp + 0x2c]
call fcn.0050d0b0
test al, al
je 0x50baf6
mov eax, dword [esp + 0xc]
mov eax, dword [eax]
lea ecx, [eax + 1]
mov edx, dword [esp + 0xc]
mov dword [edx], ecx
mov byte [eax], 0
mov eax, dword [esp + 0x24]
mov eax, dword [eax]
test eax, eax
mov ebx, 1
je case.0x508f9b.1
mov dl, byte [eax]
mov ecx, eax
test dl, dl
je 0x50ad09
lea ecx, [eax + 1]
mov edi, eax
jmp 0x50a5f5
mov byte [esi], dl
add esi, 1
mov edi, esi
movzx edx, byte [ecx]
add ecx, 1
test dl, dl
je 0x50acf9
mov esi, edi
movsx edi, dl
add edi, 0xfffffff6
cmp edi, 0x16
ja 0x50a5e0
mov ebx, 0x400009
bt ebx, edi
jae 0x50a5e0
mov edi, eax
cmp esi, eax
je 0x50a5e7
mov dl, 0x20
cmp byte [esi - 1], 0x20
jne 0x50a5e0
jmp 0x50a5e5
mov esi, dword [esp]
cmp dword [esi + 0x1ac], 0
je 0x50baf6
mov eax, dword [esi + 0x1a8]
cmp eax, dword [esi + 0x1a4]
jne 0x50a651
mov ecx, dword [esp + 0x20]
call fcn.0050d0b0
test al, al
je 0x50baf6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
lea ecx, [eax + 1]
mov dword [esi + 0x1a8], ecx
mov byte [eax], 0
mov eax, dword [esi + 0x1ac]
test eax, eax
mov ebx, 1
je case.0x508f9b.1
mov dl, byte [eax]
test dl, dl
je 0x50b155
lea ecx, [eax + 1]
mov edi, eax
jmp 0x50a6a5
mov byte [esi], dl
add esi, 1
mov edi, esi
movzx edx, byte [ecx]
add ecx, 1
test dl, dl
je 0x50adf5
mov esi, edi
movsx edi, dl
add edi, 0xfffffff6
cmp edi, 0x16
ja 0x50a690
mov ebx, 0x400009
bt ebx, edi
jae 0x50a690
mov edi, eax
cmp esi, eax
je 0x50a697
mov dl, 0x20
cmp byte [esi - 1], 0x20
jne 0x50a690
jmp 0x50a695
mov esi, dword [esp]
cmp dword [esi + 0x1ac], 0
je 0x50baf6
mov eax, dword [esi + 0x1a8]
cmp eax, dword [esi + 0x1a4]
jne 0x50a701
mov ecx, dword [esp + 0x20]
call fcn.0050d0b0
test al, al
je 0x50baf6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
mov edi, ebx
lea ecx, [eax + 1]
mov dword [esi + 0x1a8], ecx
mov byte [eax], 0
mov eax, dword [esi + 0x1ac]
test eax, eax
mov ebx, 1
je case.0x508f9b.1
mov dl, byte [eax]
mov ecx, eax
test dl, dl
mov ebx, edi
je 0x50ae1d
lea ecx, [eax + 1]
mov edi, eax
jmp 0x50a755
mov byte [esi], dl
add esi, 1
mov edi, esi
movzx edx, byte [ecx]
add ecx, 1
test dl, dl
je 0x50ae0d
mov esi, edi
movsx edi, dl
add edi, 0xfffffff6
cmp edi, 0x16
ja 0x50a740
mov ebx, 0x400009
bt ebx, edi
lea ebx, [esp + 0x18]
jae 0x50a740
mov edi, eax
cmp esi, eax
je 0x50a747
mov dl, 0x20
cmp byte [esi - 1], 0x20
jne 0x50a740
jmp 0x50a745
xor esi, esi
mov eax, dword [esp + 0x24]
cmp dword [eax], 0
je 0x50a7b8
mov eax, dword [edi + 0x5c]
cmp eax, dword [edi + 0x58]
jne 0x50a7a6
mov ecx, dword [esp + 0x2c]
call fcn.0050d0b0
test al, al
je 0x50a7b8
mov eax, dword [esp + 0xc]
mov eax, dword [eax]
lea ecx, [eax + 1]
mov edx, dword [esp + 0xc]
mov dword [edx], ecx
mov byte [eax], 0
mov eax, dword [esp + 0x24]
mov esi, dword [eax]
mov edx, dword [esp]
mov eax, dword [edx + 0x138]
mov dword [eax + 0x10], esi
mov eax, dword [edx + 0x138]
cmp dword [eax + 0x10], 0
je 0x50baf6
mov ecx, dword [edx + 0x164]
mov dword [eax + 0x14], ecx
mov eax, dword [esp + 0xc]
mov eax, dword [eax]
mov ecx, dword [esp + 0x24]
mov dword [ecx], eax
cmp dword [edx + 0x88], 0
je 0x50ad3e
cmp dword [esp + 0x28], 0xd
mov ecx, dword [esp + 0x38]
je 0x50b340
jmp 0x50ad42
mov dword [esi + 0x1a0], eax
mov dword [esi + 0x19c], 0
mov dword [esi + 0x1ac], 0
mov dword [esi + 0x1a8], 0
mov dword [esi + 0x1a4], 0
mov edi, dword [esp + 0x10]
jmp 0x50adee
mov dword [edx + 0x74], ecx
mov cl, 1
mov edx, esi
jmp 0x50b00d
mov edx, esi
mov eax, dword [esp + 0x58]
mov esi, ecx
mov ebx, dword [esp + 0x54]
cmp dword [ecx + 0x90], edi
je 0x50a86a
mov eax, dword [esi + 0x128]
lea ebx, [eax + 4]
mov dword [esp + 4], eax
mov dword [esp + 0x28], edx
nop word cs:[eax + eax]
nop dword [eax]
mov eax, dword [esi + 0x2c]
mov dword [esp + 0x48], eax
push dword [esi + 0x30]
lea eax, [esp + 0x4c]
push eax
push dword [esp + 0x30]
lea eax, [esp + 0x24]
push eax
push edi
call dword [edi + 0x38]
add esp, 0x14
mov edi, eax
mov eax, dword [esp + 0x18]
mov dword [ebx], eax
mov eax, dword [esi + 0x2c]
mov ecx, dword [esp + 0x48]
sub ecx, eax
push ecx
push eax
push dword [esi + 4]
call dword [esi + 0x50]
add esp, 0xc
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 4]
mov dword [ecx], eax
cmp edi, 2
mov edi, dword [esp + 0x10]
jae 0x50a880
mov ecx, esi
movzx eax, byte [ebp + 0x1c]
mov esi, ecx
mov edx, edi
push eax
push dword [ebp + 0x18]
push dword [ebp + 0xc]
lea eax, [ebp + 0x14]
push eax
call fcn.0050da80
add esp, 0x10
test eax, eax
jne 0x50b7ab
cmp dword [ebp + 0x14], 0
mov edx, esi
jne 0x50b344
jmp 0x50b95d
mov dword [esi + 0x1a0], eax
mov dword [esi + 0x19c], 0
mov dword [esi + 0x1ac], 0
mov dword [esi + 0x1a8], 0
mov dword [esi + 0x1a4], 0
xor ecx, ecx
mov edx, esi
cmp dword [edx + 0x140], 0
jne 0x50a94c
cmp byte [edx + 0x1e5], 0
je 0x50b12e
mov eax, ebx
mov bl, byte [ebx + 0x81]
mov byte [eax + 0x81], 1
cmp dword [edx + 0x1e8], 0
je 0x50b127
cmp dword [edx + 0x70], 0
je 0x50b127
mov byte [esp + 0x28], bl
mov ebx, ecx
mov ecx, edx
mov esi, edx
mov edx, dword [esp + 0x3c]
push 0x24
push 0x56d17b
call fcn.0050c6a0
add esp, 8
test eax, eax
je 0x50baf6
cmp byte [esi + 0x1e5], 0
mov edx, esi
je 0x50a9ab
mov ecx, dword [edx + 0x164]
mov dword [eax + 0x14], ecx
mov edi, dword [esp + 8]
mov byte [edi + 0x83], 0
push dword [eax + 0x18]
push dword [eax + 0x10]
push dword [eax + 0x14]
push 0
push dword [edx + 0x74]
mov esi, edx
call dword [edx + 0x70]
add esp, 0x14
test eax, eax
je 0x50b9ea
cmp byte [edi + 0x83], 0
je 0x50b10c
cmp byte [edi + 0x82], 0
mov edx, esi
mov ecx, ebx
jne 0x50b127
mov eax, dword [edx + 0x6c]
test eax, eax
je 0x50b127
push dword [edx + 4]
call eax
mov ecx, ebx
mov edx, esi
add esp, 4
test eax, eax
jne 0x50b127
jmp 0x50b949
mov esi, dword [esp]
cmp dword [esi + 0x1ac], 0
je 0x50baf6
mov eax, dword [esi + 0x1a8]
cmp eax, dword [esi + 0x1a4]
jne 0x50aa4b
mov ecx, dword [esp + 0x20]
call fcn.0050d0b0
test al, al
je 0x50baf6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
lea ecx, [eax + 1]
mov dword [esi + 0x1a8], ecx
mov byte [eax], 0
mov eax, dword [esi + 0x1ac]
test eax, eax
mov ebx, 1
je case.0x508f9b.1
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 4]
mov dword [ecx], edx
mov esi, dword [esp]
push dword [esi + 0x150]
push eax
push dword [esi + 0x164]
push dword [esi + 0x14c]
push dword [esi + 4]
call dword [esi + 0x60]
add esp, 0x14
xor ecx, ecx
mov edi, ecx
mov eax, dword [esi + 0x19c]
mov ecx, dword [esi + 0x1a0]
test ecx, ecx
je 0x50aac4
test eax, eax
je 0x50aaca
nop dword [eax + eax]
mov edx, dword [eax]
mov dword [eax], ecx
mov dword [esi + 0x1a0], eax
mov ecx, eax
mov eax, edx
test edx, edx
jne 0x50aab0
jmp 0x50aaca
mov dword [esi + 0x1a0], eax
mov dword [esi + 0x19c], 0
mov dword [esi + 0x1ac], 0
mov dword [esi + 0x1a8], 0
mov dword [esi + 0x1a4], 0
mov edx, esi
mov ecx, edi
jmp 0x50ad42
mov dword [ebx + 0x10], 8
push 0x60
mov esi, edx
call dword [edx + 0xc]
mov edx, esi
add esp, 4
mov dword [ebx + 0x14], eax
test eax, eax
je 0x50b98f
mov esi, edx
mov ecx, dword [ebx + 0xc]
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx*4], edi
mov dword [eax + ecx*4 + 8], 0
mov dl, byte [esp + 0x30]
mov byte [eax + ecx*4 + 4], dl
test dl, dl
jne 0x50ab3c
mov byte [edi + 8], 1
add dword [ebx + 0xc], 1
mov edx, esi
cmp dword [esi + 0x84], 0
je case.default.0x509016
mov eax, dword [edx + 0x148]
test eax, eax
je case.default.0x509016
mov cl, byte [eax]
cmp cl, 0x28
mov edi, dword [esp + 4]
je 0x50ab77
cmp cl, 0x4e
jne 0x50abf5
cmp byte [eax + 1], 0x4f
jne 0x50abf5
mov eax, dword [edx + 0x1a8]
cmp eax, dword [edx + 0x1a4]
jne 0x50ab9e
mov ecx, dword [esp + 0x20]
call fcn.0050d0b0
test al, al
je 0x50baf6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
mov edx, esi
lea ecx, [eax + 1]
mov dword [edx + 0x1a8], ecx
mov byte [eax], 0x29
mov eax, dword [edx + 0x1a8]
cmp eax, dword [edx + 0x1a4]
jne 0x50abd1
mov ecx, dword [esp + 0x20]
call fcn.0050d0b0
test al, al
je 0x50baf6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
mov edx, esi
lea ecx, [eax + 1]
mov dword [edx + 0x1a8], ecx
mov byte [eax], 0
mov eax, dword [edx + 0x1a8]
mov ecx, dword [edx + 0x1ac]
mov dword [edx + 0x148], ecx
mov dword [edx + 0x1ac], eax
mov eax, dword [esp + 0x34]
mov dword [eax], edi
mov eax, dword [edx + 0x154]
xor ecx, ecx
cmp dword [esp + 0x28], 0x24
mov edx, dword [esi + 0x158]
sete cl
push ecx
push 0
push dword [esi + 0x148]
push dword [edx]
push dword [eax]
push dword [esi + 4]
call dword [esi + 0x84]
add esp, 0x18
mov eax, dword [esi + 0x19c]
mov ecx, dword [esi + 0x1a0]
test ecx, ecx
je 0x50afd4
test eax, eax
mov edi, dword [esp + 0x10]
je 0x50afde
nop word [eax + eax]
mov edx, dword [eax]
mov dword [eax], ecx
mov dword [esi + 0x1a0], eax
mov ecx, eax
mov eax, edx
test edx, edx
jne 0x50ac50
jmp 0x50afde
mov dword [edx + 0x1d0], 0x20
push 0x20
mov esi, edx
call dword [edx + 0xc]
mov edx, esi
add esp, 4
mov dword [esi + 0x1cc], eax
test eax, eax
je 0x50b9a0
mov eax, dword [edx + 0x100]
mov ecx, dword [edx + 0x1cc]
mov byte [ecx + eax], 0
cmp byte [edi + 0xa0], 0
je case.default.0x509016
mov ecx, edx
mov esi, edx
call fcn.0050ddf0
test eax, eax
js 0x50baf6
mov edi, dword [esp + 8]
mov ecx, dword [edi + 0xb4]
mov edx, dword [edi + 0xb8]
mov dword [edx + ecx*4], eax
add dword [edi + 0xb4], 1
mov ecx, dword [edi + 0xa4]
lea edx, [eax + eax*8]
lea edx, [edx + edx*2]
add edx, eax
mov dword [ecx + edx], 6
cmp dword [esi + 0x80], 0
mov edx, esi
jne 0x50b340
jmp case.default.0x509016
mov ecx, eax
cmp edi, eax
je 0x50ad09
lea ecx, [edi - 1]
cmp byte [edi - 1], 0x20
cmovne ecx, edi
mov byte [ecx], 0
mov edx, dword [esp]
mov ecx, dword [edx + 0x138]
mov dword [ecx + 0x18], eax
mov eax, dword [esp + 0xc]
mov eax, dword [eax]
mov ecx, dword [esp + 0x24]
mov dword [ecx], eax
cmp dword [edx + 0x88], 0
je 0x50ad3e
cmp dword [esp + 0x28], 0xe
mov ecx, dword [esp + 0x38]
je 0x50b340
jmp 0x50ad42
mov ecx, dword [esp + 0x38]
test cl, cl
je 0x50b340
mov eax, dword [edx + 0x50]
test eax, eax
je 0x50b340
mov esi, dword [ebp + 0x14]
mov ecx, dword [esp + 4]
mov dword [esp + 0x18], ecx
mov edi, dword [esp + 0x10]
cmp byte [edi + 0x44], 0
je 0x50ad7a
sub esi, ecx
push esi
push ecx
push dword [edx + 4]
mov esi, edx
call eax
add esp, 0xc
jmp 0x50adee
mov ecx, esi
mov esi, edx
mov ebx, dword [esp + 0x58]
mov eax, dword [esp + 0x54]
cmp dword [edx + 0x90], edi
je 0x50ad97
mov ebx, dword [esi + 0x128]
lea eax, [ebx + 4]
mov dword [esp + 4], eax
mov dword [esp + 0x28], ecx
nop
mov eax, dword [esi + 0x2c]
mov dword [esp + 0x48], eax
push dword [esi + 0x30]
lea eax, [esp + 0x4c]
push eax
push dword [esp + 0x30]
lea eax, [esp + 0x24]
push eax
push edi
call dword [edi + 0x38]
add esp, 0x14
mov edi, eax
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 4]
mov dword [ecx], eax
mov eax, dword [esi + 0x2c]
mov ecx, dword [esp + 0x48]
sub ecx, eax
push ecx
push eax
push dword [esi + 4]
call dword [esi + 0x50]
add esp, 0xc
mov eax, dword [esp + 0x18]
mov dword [ebx], eax
cmp edi, 2
mov edi, dword [esp + 0x10]
jae 0x50ada0
mov edx, esi
jmp 0x50b344
mov ecx, eax
cmp edi, eax
je 0x50ae05
lea ecx, [edi - 1]
cmp byte [edi - 1], 0x20
cmovne ecx, edi
mov byte [ecx], 0
jmp 0x50b158
mov ecx, eax
cmp edi, eax
je 0x50ae1d
lea ecx, [edi - 1]
cmp byte [edi - 1], 0x20
cmovne ecx, edi
mov byte [ecx], 0
mov edx, dword [esp]
mov ecx, dword [edx + 0x1a8]
mov dword [edx + 0x1ac], ecx
mov dword [edx + 0x144], eax
xor ecx, ecx
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 8]
cmp byte [eax + 0x80], 0
jne 0x5095bc
jmp 0x50ad42
mov dword [edx + 0x10], 8
push 0x60
mov eax, dword [esp + 4]
call dword [eax + 0xc]
mov edx, dword [esp + 0x34]
add esp, 4
mov dword [edx + 0x14], eax
test eax, eax
je 0x50b9b4
mov ecx, dword [edx + 0xc]
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx*4], edi
mov esi, ebx
mov dword [eax + ecx*4 + 8], ebx
mov bl, byte [esp + 0x44]
mov byte [eax + ecx*4 + 4], bl
test bl, bl
jne 0x50ae92
mov byte [edi + 8], 1
add dword [edx + 0xc], 1
mov ebx, esi
mov edx, dword [esp]
cmp dword [edx + 0x84], 0
je case.default.0x509016
mov eax, dword [edx + 0x148]
test eax, eax
je case.default.0x509016
mov esi, ebx
mov cl, byte [eax]
cmp cl, 0x28
mov edi, dword [esp + 4]
je 0x50aed6
cmp cl, 0x4e
jne 0x50af56
cmp byte [eax + 1], 0x4f
jne 0x50af56
mov eax, dword [edx + 0x1a8]
cmp eax, dword [edx + 0x1a4]
jne 0x50aefe
mov ecx, dword [esp + 0x20]
call fcn.0050d0b0
test al, al
je 0x50baf6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
mov edx, dword [esp]
lea ecx, [eax + 1]
mov dword [edx + 0x1a8], ecx
mov byte [eax], 0x29
mov eax, dword [edx + 0x1a8]
cmp eax, dword [edx + 0x1a4]
jne 0x50af32
mov ecx, dword [esp + 0x20]
call fcn.0050d0b0
test al, al
je 0x50baf6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
mov edx, dword [esp]
lea ecx, [eax + 1]
mov dword [edx + 0x1a8], ecx
mov byte [eax], 0
mov eax, dword [edx + 0x1a8]
mov ecx, dword [edx + 0x1ac]
mov dword [edx + 0x148], ecx
mov dword [edx + 0x1ac], eax
mov eax, dword [esp + 0x34]
mov dword [eax], edi
mov eax, dword [edx + 0x154]
xor ecx, ecx
cmp dword [esp + 0x28], 0x26
mov edx, dword [esp]
mov edx, dword [edx + 0x158]
sete cl
push ecx
push esi
mov ecx, dword [esp + 8]
push dword [ecx + 0x148]
push dword [edx]
push dword [eax]
mov eax, dword [esp + 0x14]
push dword [eax + 4]
mov eax, dword [esp + 0x18]
call dword [eax + 0x84]
mov esi, dword [esp + 0x18]
add esp, 0x18
mov eax, dword [esi + 0x19c]
mov ecx, dword [esi + 0x1a0]
test ecx, ecx
je 0x50afd4
test eax, eax
mov edi, dword [esp + 0x10]
je 0x50afde
nop word cs:[eax + eax]
nop
mov edx, dword [eax]
mov dword [eax], ecx
mov dword [esi + 0x1a0], eax
mov ecx, eax
mov eax, edx
test edx, edx
jne 0x50afc0
jmp 0x50afde
mov dword [esi + 0x1a0], eax
mov edi, dword [esp + 0x10]
mov dword [esi + 0x19c], 0
mov dword [esi + 0x1ac], 0
mov dword [esi + 0x1a8], 0
mov dword [esi + 0x1a4], 0
jmp 0x50adee
mov cl, 1
test edi, edi
je 0x50ad42
jmp 0x50b96e
mov edx, esi
mov eax, dword [esp + 0x24]
mov eax, dword [eax]
mov ecx, dword [esp + 0xc]
mov dword [ecx], eax
jmp 0x50b41c
cmp byte [eax + 0x81], 0
jne 0x50a2aa
test ebx, ebx
je 0x50b9c5
cmp byte [ebx + 0x22], 0
je 0x50b9cf
cmp byte [ebx + 0x20], 0
jne 0x50b975
cmp dword [ebx + 4], 0
je 0x50b086
mov esi, edx
mov edx, ebx
xor eax, eax
cmp ecx, 0x3c
sete al
mov ecx, esi
push eax
call fcn.0050df10
mov edx, esi
add esp, 4
test eax, eax
mov edi, dword [esp + 0x10]
je 0x50b344
jmp 0x50b7ab
cmp dword [edx + 0x70], 0
mov edi, dword [esp + 0x10]
je 0x50b176
mov byte [eax + 0x83], 0
mov byte [ebx + 0x20], 1
mov ecx, edx
mov esi, edx
mov edx, ebx
push 0x14b7
call fcn.0050e1c0
add esp, 4
push dword [ebx + 0x18]
push dword [ebx + 0x10]
push dword [ebx + 0x14]
push 0
push dword [esi + 0x74]
call dword [esi + 0x70]
add esp, 0x14
mov ecx, esi
mov edx, ebx
test eax, eax
je 0x50b9d9
push 0x14bf
call fcn.0050e280
add esp, 4
mov byte [ebx + 0x20], 0
mov ecx, dword [esp + 8]
cmp byte [ecx + 0x83], 0
mov al, byte [ecx + 0x82]
je 0x50b189
xor ecx, ecx
mov edx, dword [esp]
test al, al
jne 0x50ad42
jmp 0x50a1b6
mov edx, esi
cmp dword [esi + 0x140], 0
mov ecx, ebx
mov bl, byte [esp + 0x28]
jne 0x50b127
mov eax, dword [esp + 8]
mov byte [eax + 0x81], bl
mov byte [edx + 0x1e5], 0
mov eax, dword [edx + 0x58]
test eax, eax
je 0x50ad42
push dword [edx + 4]
mov esi, edx
call eax
mov edx, esi
add esp, 4
mov edi, dword [esp + 0x10]
jmp 0x50b344
mov ecx, edi
jmp 0x50ad42
mov byte [eax], 0
mov edx, dword [esp]
mov dword [edx + 0x150], eax
mov eax, dword [edx + 0x1a8]
mov dword [edx + 0x1ac], eax
mov edi, dword [esp + 0x10]
jmp 0x50b344
mov ecx, eax
mov al, byte [eax + 0x82]
mov byte [ecx + 0x80], al
jmp case.default.0x509016
mov byte [ecx + 0x80], al
mov edx, dword [esp]
jmp 0x50b344
mov ecx, dword [esp + 0x20]
call fcn.0050d0b0
test al, al
je 0x50b75c
mov eax, dword [esp]
push dword [eax + 0x1a4]
push dword [esp + 0x20]
push esi
push ebx
push edi
call dword [edi + 0x38]
add esp, 0x14
cmp eax, 2
jae 0x50b197
mov edx, dword [esp]
cmp dword [edx + 0x1ac], 0
je 0x50b75f
mov eax, dword [edx + 0x1a8]
cmp eax, dword [edx + 0x1a4]
jne 0x50b1fc
mov ecx, dword [esp + 0x20]
mov esi, edx
call fcn.0050d0b0
mov edx, esi
test al, al
je 0x50b75f
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
lea ecx, [eax + 1]
mov dword [edx + 0x1a8], ecx
mov byte [eax], 0
mov eax, dword [edx + 0x1ac]
mov dword [edx + 0x13c], eax
test eax, eax
je 0x50baf6
mov eax, dword [edx + 0x1a8]
mov dword [edx + 0x1ac], eax
mov dword [edx + 0x144], 0
xor ecx, ecx
mov dword [edx + 0x140], 0
jmp 0x50ad42
mov ecx, dword [esp + 0x2c]
call fcn.0050d0b0
test al, al
je 0x50baf6
push dword [ebx + 0x58]
push dword [esp + 0x10]
push esi
lea eax, [esp + 0x24]
push eax
push edi
call dword [edi + 0x38]
add esp, 0x14
cmp eax, 2
jae 0x50b243
mov eax, dword [esp + 0x24]
cmp dword [eax], 0
je 0x50baf6
mov eax, dword [ebx + 0x5c]
cmp eax, dword [ebx + 0x58]
jne 0x50b299
mov ecx, dword [esp + 0x2c]
call fcn.0050d0b0
test al, al
je 0x50baf6
mov eax, dword [esp + 0xc]
mov eax, dword [eax]
lea ecx, [eax + 1]
mov edx, dword [esp + 0xc]
mov dword [edx], ecx
mov byte [eax], 0
mov eax, dword [esp + 0x24]
mov esi, dword [eax]
test esi, esi
je 0x50baf6
mov edi, dword [esp]
mov ecx, edi
mov edx, ebx
push 0x24
push esi
call fcn.0050c6a0
add esp, 8
mov dword [edi + 0x138], eax
test eax, eax
mov ebx, 1
je case.0x508f9b.1
cmp dword [eax], esi
jne 0x50b40d
mov eax, dword [esp + 0xc]
mov eax, dword [eax]
mov ecx, dword [esp + 0x24]
mov dword [ecx], eax
mov edx, dword [esp]
mov eax, dword [edx + 0x138]
mov dword [eax + 0x18], 0
mov eax, dword [edx + 0x138]
mov byte [eax + 0x21], 0
mov al, 1
cmp dword [edx + 0x1d8], 0
jne 0x50b31b
cmp dword [edx + 0x128], 0
setne al
xor al, 1
mov ecx, dword [edx + 0x138]
mov byte [ecx + 0x22], al
cmp dword [edx + 0x88], 0
je case.default.0x509016
nop word cs:[eax + eax]
nop dword [eax]
mov edi, dword [esp + 0x10]
mov eax, dword [edx + 0x1dc]
cmp eax, 2
je 0x50b6fd
cmp eax, 3
je 0x50b707
mov esi, dword [ebp + 0x14]
lea eax, [ebp + 0x14]
push eax
push dword [ebp + 0xc]
push esi
push edi
call dword [edi]
add esp, 0x10
jmp 0x508f60
mov ecx, dword [esp + 0x2c]
call fcn.0050d0b0
test al, al
je 0x50baf6
push dword [edi + 0x58]
push dword [esp + 0x10]
push esi
push ebx
mov eax, dword [esp + 0x20]
push eax
call dword [eax + 0x38]
add esp, 0x14
cmp eax, 2
jae 0x50b372
mov eax, dword [esp + 0x24]
cmp dword [eax], 0
je 0x50baf6
mov eax, dword [edi + 0x5c]
cmp eax, dword [edi + 0x58]
jne 0x50b3c8
mov ecx, dword [esp + 0x2c]
call fcn.0050d0b0
test al, al
je 0x50baf6
mov eax, dword [esp + 0xc]
mov eax, dword [eax]
lea ecx, [eax + 1]
mov edx, dword [esp + 0xc]
mov dword [edx], ecx
mov byte [eax], 0
mov eax, dword [esp + 0x24]
mov esi, dword [eax]
test esi, esi
je 0x50baf6
mov edi, dword [esp]
mov ecx, edi
mov edx, dword [esp + 0x3c]
push 0x24
push esi
call fcn.0050c6a0
add esp, 8
mov dword [edi + 0x138], eax
test eax, eax
mov ebx, 1
je case.0x508f9b.1
cmp dword [eax], esi
je 0x50b42b
mov eax, dword [esp + 0x24]
mov eax, dword [eax]
mov ecx, dword [esp + 0xc]
mov dword [ecx], eax
mov edx, dword [esp]
mov dword [edx + 0x138], 0
jmp case.default.0x509016
mov eax, dword [esp + 0xc]
mov eax, dword [eax]
mov ecx, dword [esp + 0x24]
mov dword [ecx], eax
mov edx, dword [esp]
mov eax, dword [edx + 0x138]
mov dword [eax + 0x18], 0
mov eax, dword [edx + 0x138]
mov byte [eax + 0x21], 1
jmp 0x50b306
mov ecx, dword [esp + 0x2c]
call fcn.0050d0b0
test al, al
je 0x50b4be
mov eax, dword [esp + 8]
push dword [eax + 0x58]
push dword [esp + 0x10]
push esi
push ebx
push edi
call dword [edi + 0x38]
add esp, 0x14
cmp eax, 2
jae 0x50b456
xor esi, esi
mov eax, dword [esp + 0x24]
cmp dword [eax], 0
je 0x50b4c0
mov ecx, dword [esp + 8]
mov eax, dword [ecx + 0x5c]
cmp eax, dword [ecx + 0x58]
mov ebx, dword [esp + 4]
jne 0x50b4aa
mov ecx, dword [esp + 0x2c]
call fcn.0050d0b0
test al, al
je 0x50b4c4
mov eax, dword [esp + 0xc]
mov eax, dword [eax]
lea ecx, [eax + 1]
mov edx, dword [esp + 0xc]
mov dword [edx], ecx
mov byte [eax], 0
mov eax, dword [esp + 0x24]
mov esi, dword [eax]
jmp 0x50b4c4
xor esi, esi
mov ebx, dword [esp + 4]
mov edx, dword [esp]
mov eax, dword [edx + 0x138]
mov dword [eax + 0x1c], esi
mov eax, dword [edx + 0x138]
cmp dword [eax + 0x1c], 0
je 0x50baf6
mov eax, dword [esp + 0xc]
mov eax, dword [eax]
mov ecx, dword [esp + 0x24]
mov dword [ecx], eax
cmp dword [edx + 0x5c], 0
je 0x50b51e
mov eax, dword [esp + 0x34]
mov dword [eax], ebx
mov eax, dword [edx + 0x138]
push dword [eax + 0x1c]
push dword [eax + 0x18]
push dword [eax + 0x10]
push dword [eax + 0x14]
push dword [eax]
push dword [edx + 4]
mov esi, edx
call dword [edx + 0x5c]
mov edx, esi
add esp, 0x18
jmp 0x50b344
cmp dword [edx + 0x88], 0
je case.default.0x509016
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 4]
mov dword [eax], ecx
mov eax, dword [edx + 0x138]
push dword [eax + 0x1c]
push dword [eax + 0x18]
push dword [eax + 0x10]
push dword [eax + 0x14]
push 0
push 0
push 0
push dword [eax]
push dword [edx + 4]
mov esi, edx
call dword [edx + 0x88]
mov edx, esi
add esp, 0x24
mov edi, dword [esp + 0x10]
jmp 0x50b344
mov ecx, dword [esp + 0x20]
call fcn.0050d0b0
test al, al
je 0x50b773
mov eax, dword [esp]
push dword [eax + 0x1a4]
push dword [esp + 0x20]
push esi
push ebx
push edi
call dword [edi + 0x38]
add esp, 0x14
cmp eax, 2
jae 0x50b568
mov edx, dword [esp]
cmp dword [edx + 0x1ac], 0
je 0x50b776
mov eax, dword [edx + 0x1a8]
cmp eax, dword [edx + 0x1a4]
jne 0x50b5cd
mov ecx, dword [esp + 0x20]
mov esi, edx
call fcn.0050d0b0
mov edx, esi
test al, al
je 0x50b776
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
lea ecx, [eax + 1]
mov dword [edx + 0x1a8], ecx
mov byte [eax], 0
mov eax, dword [edx + 0x1ac]
mov dword [edx + 0x14c], eax
test eax, eax
je 0x50baf6
mov eax, dword [edx + 0x1a8]
mov dword [edx + 0x1ac], eax
jmp 0x50b344
mov ecx, dword [esp + 0x20]
call fcn.0050d0b0
test al, al
je 0x50baf6
mov eax, dword [esp]
push dword [eax + 0x1a4]
push dword [esp + 0x20]
push esi
push ebx
push edi
call dword [edi + 0x38]
add esp, 0x14
cmp eax, 2
jae 0x50b5fe
mov eax, dword [esp]
mov eax, dword [eax + 0x1ac]
test eax, eax
mov ebx, 1
je case.0x508f9b.1
mov edx, dword [esp]
mov dword [edx + 0x148], eax
mov edi, dword [esp + 0x10]
jmp 0x50b344
mov edi, edx
mov edx, dword [edx + 0x1d8]
test edx, edx
jne 0x50b660
cmp dword [edi + 0x200], 0
jle 0x50b7a1
mov ecx, dword [edi + 0x1f0]
mov eax, dword [edi + 0x1f4]
mov edx, ecx
or edx, eax
je 0x50b7e6
movd xmm0, ecx
add ecx, dword [edi + 0x1f8]
movd xmm1, ecx
mov ecx, dword [edi + 0x1fc]
adc ecx, eax
movd xmm2, ecx
punpckldq xmm1, xmm2
movd xmm2, eax
movq qword [esp + 0x70], xmm1
shr ecx, 0x1f
fild qword [esp + 0x70]
fadd dword [ecx*4 + 0x56c4c0]
punpckldq xmm0, xmm2
fstp dword [esp + 0x60]
movss xmm1, dword [esp + 0x60]
movq qword [esp + 0x68], xmm0
shr eax, 0x1f
fild qword [esp + 0x68]
fadd dword [eax*4 + 0x56c4c0]
fstp dword [esp + 0x64]
divss xmm1, dword [esp + 0x64]
xorps xmm0, xmm0
cvtss2sd xmm0, xmm1
jmp 0x50b7ee
mov ebx, 0x23
jmp case.0x508f9b.1
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x18]
mov dword [ecx], eax
xor ebx, ebx
jmp case.0x508f9b.1
mov eax, dword [esp]
mov ecx, dword [esp + 0x10]
cmp ecx, dword [eax + 0x90]
je 0x50b7b2
mov eax, dword [eax + 0x128]
cmp byte [eax + 0x14], 0
mov esi, dword [esp + 4]
jne 0x50b7c3
jmp 0x50b7da
mov ebx, 6
jmp case.0x508f9b.1
mov eax, dword [esp + 0x40]
mov dword [eax], ecx
mov ebx, 4
jmp case.0x508f9b.1
mov edx, dword [esp]
mov dword [edx + 0x13c], 0
mov ebx, 1
jmp case.0x508f9b.1
mov edx, dword [esp]
mov dword [edx + 0x14c], 0
mov ebx, 1
jmp case.0x508f9b.1
mov esi, dword [esp]
mov dword [esi + 0x140], 0
mov ebx, 1
jmp case.0x508f9b.1
mov ebx, 0x2b
jmp case.0x508f9b.1
mov ebx, eax
jmp case.0x508f9b.1
cmp byte [eax + 0x1e4], 0
mov esi, dword [esp + 4]
je 0x50b861
push ecx
mov eax, dword [ebp + 0xc]
push eax
push eax
push 0xfffffffffffffffc
mov eax, dword [esp + 0x6c]
push eax
call dword [eax]
add esp, 0x14
cmp eax, 0xffffffff
je 0x50b84d
mov eax, dword [ebp + 0x18]
mov dword [eax], esi
xor ebx, ebx
jmp case.0x508f9b.1
movsd xmm0, qword [0x56c4b8]
movsd qword [esp + 0x10], xmm0
push 2
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
add esp, 4
movups xmm0, xmmword [edi + 0x1f0]
sub esp, 0x28
movsd xmm1, qword [esp + 0x38]
movsd qword [esp + 0x1c], xmm1
movups xmmword [esp + 0xc], xmm0
mov dword [esp + 8], edi
mov dword [esp], eax
mov dword [esp + 0x24], str._ABORTING_n
mov dword [esp + 4], str.expat:_Accounting__p_:_Direct__10llu__indirect__10llu__amplification__8.2f_s
call fcn.0050e880
add esp, 0x28
mov ebx, 0x2b
jmp case.0x508f9b.1
mov ebx, 0x20
jmp case.0x508f9b.1
mov ebx, 0x1d
jmp case.0x508f9b.1
mov ebx, 2
jmp case.0x508f9b.1
mov ebx, 3
jmp case.0x508f9b.1
cmp edi, 0xc
mov eax, 0x11
mov ecx, 2
cmove ecx, eax
cmp edi, 0x1c
mov ebx, 0xa
cmovne ebx, ecx
jmp case.0x508f9b.1
cmp byte [esi + 0x1e5], 0
je 0x50b9fd
mov eax, dword [esp + 8]
mov bl, byte [eax + 0x81]
mov byte [eax + 0x81], 1
cmp dword [esi + 0x1e8], 0
je 0x50b9fd
cmp dword [esi + 0x70], 0
je 0x50b9fd
mov ecx, esi
mov edx, dword [esp + 0x3c]
push 0x24
push 0x56d17b
call fcn.0050c6a0
add esp, 8
test eax, eax
je 0x50baf6
mov ecx, dword [esi + 0x164]
mov dword [eax + 0x14], ecx
mov edi, dword [esp + 8]
mov byte [edi + 0x83], 0
push dword [eax + 0x18]
push dword [eax + 0x10]
push dword [eax + 0x14]
push 0
push dword [esi + 0x74]
call dword [esi + 0x70]
add esp, 0x14
test eax, eax
je 0x50b9ea
cmp byte [edi + 0x83], 0
je 0x50b9f4
cmp byte [edi + 0x82], 0
mov esi, dword [esp]
jne 0x50b9fd
mov eax, dword [esi + 0x6c]
test eax, eax
je 0x50b9fd
push dword [esi + 4]
call eax
mov esi, dword [esp + 4]
add esp, 4
test eax, eax
jne 0x50b9fd
mov ebx, 0x16
jmp case.0x508f9b.1
mov ebx, 4
jmp case.0x508f9b.1
mov dword [edx + 0x114], 0x50dd50
xor ebx, ebx
jmp case.0x508f9b.1
mov ebx, edi
jmp case.0x508f9b.1
mov ebx, 0xc
jmp case.0x508f9b.1
shr dword [esi + 0x1d0], 1
mov ebx, 1
jmp case.0x508f9b.1
mov dword [ebx + 0x10], 0
mov ebx, 1
jmp case.0x508f9b.1
mov dword [edx + 0x1d0], 0
mov ebx, 1
jmp case.0x508f9b.1
mov dword [edx + 0x10], 0
mov ebx, 1
jmp case.0x508f9b.1
mov ebx, 0xb
jmp case.0x508f9b.1
mov ebx, 0x18
jmp case.0x508f9b.1
push 0x14bb
call fcn.0050e280
add esp, 4
mov byte [ebx + 0x20], 0
mov ebx, 0x15
jmp case.0x508f9b.1
mov byte [edi + 0x81], bl
mov esi, dword [esp]
mov dword [esi + 0x114], fcn.0050cc90
xor eax, eax
cmp byte [esi + 0x1e0], 0
sete al
mov ecx, esi
xor edx, edx
push 0
push eax
push dword [ebp + 0x18]
push dword [ebp + 0xc]
push dword [esp + 0x14]
push dword [esi + 0x90]
call fcn.0050ee00
add esp, 0x18
mov ebx, eax
test eax, eax
jne case.0x508f9b.1
mov eax, dword [esp]
mov edi, dword [eax + 0x168]
test edi, edi
jne 0x50ba7f
xor ebx, ebx
jmp case.0x508f9b.1
mov dword [edi + 0x24], eax
mov ecx, dword [esp + 0x10]
add ecx, eax
mov dword [edi + 0x28], ecx
add esi, eax
mov eax, dword [edi + 4]
mov dword [esp + 4], eax
mov ecx, dword [edi + 8]
push ecx
push dword [esp + 8]
push esi
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
mov dword [edi + 4], esi
mov edi, dword [edi]
test edi, edi
je 0x50ba49
mov eax, dword [edi + 4]
mov ebx, dword [edi + 0x18]
mov edx, dword [edi + 0x24]
lea esi, [edx + ebx]
add esi, 1
cmp eax, esi
je 0x50ba49
mov dword [esp + 4], eax
mov ecx, dword [edi + 8]
mov eax, 0x7ffffffe
sub eax, ebx
cmp ecx, eax
ja 0x50baf6
add ebx, 1
lea eax, [ecx + ebx]
mov dword [esp + 0x10], eax
mov eax, dword [edi + 0x28]
sub eax, edx
cmp dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
jle 0x50ba68
mov esi, ebx
push eax
push edx
mov eax, dword [esp + 8]
call dword [eax + 0x10]
add esp, 8
test eax, eax
mov ebx, 1
je case.0x508f9b.1
mov ecx, dword [edi + 0x24]
cmp dword [edi + 0xc], ecx
jne 0x50badf
mov dword [edi + 0xc], eax
mov edx, dword [edi + 0x10]
test edx, edx
je 0x50ba50
sub edx, ecx
add edx, eax
mov dword [edi + 0x10], edx
jmp 0x50ba50
mov ebx, 1
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret