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

Disassembly:
push 0xffffffffffffffff
push 0x57b210
mov eax, dword fs:[0]
push eax
sub esp, 0x7c
mov eax, dword [0x59b000]
xor eax, esp
mov dword [esp + 0x78], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x59b000]
xor eax, esp
push eax
lea eax, [esp + 0x90]
mov dword fs:[0], eax
mov eax, dword [esp + 0xac]
mov edi, dword [esp + 0xb0]
mov ecx, edi
mov ebp, dword [esp + 0xa4]
mov esi, dword [esp + 0xa8]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x30], eax
lea eax, [esp + 0x34]
push eax
mov dword [esp + 0x30], ebp
call fcn.00467470
push eax
mov dword [esp + 0x9c], 0
call fcn.0045e0f0
mov ecx, dword [esp + 0x38]
add esp, 4
mov dword [esp + 0x98], 0xffffffff
mov ebx, eax
mov dword [esp + 0x38], ebx
test ecx, ecx
je 0x517cfe
mov edx, dword [ecx]
call dword [edx + 8]
test eax, eax
je 0x517cfe
mov edx, dword [eax]
mov ecx, eax
push 1
call dword [edx]
lea eax, [esp + 0x58]
mov ecx, ebx
push eax
call fcn.004674a0
lea eax, [esp + 0x28]
mov dword [esp + 0x98], 1
push eax
mov ecx, edi
call fcn.00467470
push eax
mov byte [esp + 0x9c], 2
call fcn.0045de70
mov ecx, dword [esp + 0x2c]
add esp, 4
mov byte [esp + 0x98], 1
mov edi, eax
test ecx, ecx
je 0x517d55
mov edx, dword [ecx]
call dword [edx + 8]
test eax, eax
je 0x517d55
mov edx, dword [eax]
mov ecx, eax
push 1
call dword [edx]
mov eax, dword [edi]
lea ecx, [esp + 0x70]
push ecx
push 0x44ec80
push 0x44ec64
mov ecx, edi
call dword [eax + 0x1c]
push dword [esp + 0x18]
mov edi, dword [esp + 0x30]
mov ecx, esi
mov ebp, edi
mov byte [esp + 0x22], 0
call fcn.00519cb0
test al, al
jne 0x517ded
cmp byte [esi + 4], al
jne 0x517dbf
mov ecx, dword [esi]
test ecx, ecx
je 0x517db5
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x517da6
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x517da6
movzx eax, byte [edx]
jmp 0x517dab
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x517db5
mov byte [esi + 5], al
jmp 0x517dbb
mov dword [esi], 0
mov byte [esi + 4], 1
mov al, byte [esi + 5]
mov ecx, esi
cmp al, byte [esp + 0x87]
jne 0x517dd2
mov byte [edi], 0x2b
jmp 0x517de5
call fcn.00515d80
cmp al, byte [esp + 0x86]
jne 0x517ded
mov byte [edi], 0x2d
mov ecx, esi
lea ebp, [edi + 1]
call fcn.00515dd0
push dword [esp + 0x18]
xor cl, cl
mov word [ebp], 0x7830
mov byte [esp + 0x1b], cl
xor edi, edi
add ebp, 2
mov dword [esp + 0x2c], edi
mov ecx, esi
mov dword [esp + 0x28], ebp
mov dword [esp + 0x24], edi
call fcn.00519cb0
test al, al
jne 0x517e9f
cmp byte [esi + 4], al
jne 0x517e52
mov ecx, dword [esi]
test ecx, ecx
je 0x517e4c
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x517e3d
mov eax, dword [ecx + 0x2c]
cmp dword [eax], edi
jle 0x517e3d
movzx eax, byte [edx]
jmp 0x517e42
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x517e4c
mov byte [esi + 5], al
jmp 0x517e4e
mov dword [esi], edi
mov byte [esi + 4], 1
mov al, byte [esi + 5]
cmp al, byte [esp + 0x70]
jne 0x517e9f
mov ecx, esi
call fcn.00515dd0
push dword [esp + 0x18]
mov ecx, eax
call fcn.00519cb0
test al, al
jne 0x517e9a
mov ecx, esi
call fcn.00515d80
cmp al, byte [esp + 0x89]
je 0x517e91
mov ecx, esi
call fcn.00515d80
cmp al, byte [esp + 0x88]
jne 0x517e9a
mov ecx, esi
call fcn.00515dd0
jmp 0x517e9f
mov byte [esp + 0x17], 1
cmp dword [esp + 0x6c], 0x10
lea eax, [esp + 0x58]
cmovae eax, dword [esp + 0x58]
mov dword [esp + 0x3c], eax
mov al, byte [eax]
cmp al, 0x7f
je 0x51812c
test al, al
jle 0x51812c
cmp dword [esp + 0x68], edi
jne 0x517ed0
mov byte [esp + 0x1f], 0
jmp 0x517edd
mov eax, dword [ebx]
mov ecx, ebx
mov eax, dword [eax + 0x10]
call eax
mov byte [esp + 0x1f], al
mov ebp, 0xf
mov word [esp + 0x40], di
mov dword [esp + 0x54], ebp
mov dword [esp + 0x50], 1
push dword [esp + 0x18]
mov ecx, esi
mov byte [esp + 0x9c], 3
xor edi, edi
call fcn.00519cb0
mov ebx, dword [esp + 0x40]
test al, al
jne 0x518071
cmp byte [esi + 4], 0
jne 0x517f4f
mov ecx, dword [esi]
test ecx, ecx
je 0x517f45
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x517f36
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x517f36
movzx eax, byte [edx]
jmp 0x517f3b
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x517f45
mov byte [esi + 5], al
jmp 0x517f4b
mov dword [esi], 0
mov byte [esi + 4], 1
mov cl, byte [esp + 0x70]
lea eax, [esp + 0x70]
mov dl, byte [esi + 5]
test cl, cl
je 0x517f6c
mov edi, edi
cmp cl, dl
je 0x517f6c
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x517f60
lea ecx, [esp + 0x70]
sub eax, ecx
cmp eax, 0x16
jae 0x517fc8
mov edx, dword [esp + 0x28]
mov byte [esp + 0x17], 1
cmp edx, 0x24
jl 0x517f8b
inc dword [esp + 0x20]
jmp 0x517fa9
test eax, eax
jne 0x517f93
test edx, edx
je 0x517fa9
mov ecx, dword [esp + 0x24]
mov al, byte [eax + 0x44ec64]
mov byte [ecx], al
inc ecx
inc edx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], edx
cmp ebp, 0x10
lea eax, [esp + 0x40]
cmovae eax, ebx
cmp byte [eax + edi], 0x7f
je 0x518006
cmp ebp, 0x10
lea eax, [esp + 0x40]
cmovae eax, ebx
inc byte [eax + edi]
jmp 0x517ffe
cmp ebp, 0x10
lea eax, [esp + 0x40]
cmovae eax, ebx
cmp byte [eax + edi], 0
je 0x51805c
cmp byte [esp + 0x1f], 0
je 0x51805c
mov ecx, esi
call fcn.00515d80
cmp al, byte [esp + 0x1f]
jne 0x51805c
push 0
push 1
lea ecx, [esp + 0x48]
call fcn.004abe60
inc edi
mov ebx, dword [esp + 0x40]
mov ebp, dword [esp + 0x54]
mov ecx, dword [esi]
test ecx, ecx
je 0x51803f
mov eax, dword [ecx + 0x1c]
cmp dword [eax], 0
je 0x51802f
mov edx, dword [ecx + 0x2c]
mov eax, dword [edx]
test eax, eax
jle 0x51802f
dec eax
mov dword [edx], eax
mov ecx, dword [ecx + 0x1c]
mov edx, dword [ecx]
lea eax, [edx + 1]
mov dword [ecx], eax
movzx eax, byte [edx]
jmp 0x518034
mov eax, dword [ecx]
call dword [eax + 0x1c]
cmp eax, 0xffffffff
je 0x51803f
mov byte [esi + 4], 0
jmp 0x518049
mov dword [esi], 0
mov byte [esi + 4], 1
push dword [esp + 0x18]
mov ecx, esi
call fcn.00519cb0
test al, al
je 0x517f14
test edi, edi
je 0x518071
cmp ebp, 0x10
lea eax, [esp + 0x40]
cmovae eax, ebx
cmp byte [eax + edi], 0
jle 0x5180ad
inc edi
mov edx, dword [esp + 0x3c]
test edi, edi
je 0x5180b2
mov cl, byte [edx]
cmp cl, 0x7f
je 0x5180b2
dec edi
je 0x518092
cmp ebp, 0x10
lea eax, [esp + 0x40]
cmovae eax, ebx
cmp cl, byte [eax + edi]
jne 0x5180ad
test edi, edi
jne 0x5180a4
cmp ebp, 0x10
lea eax, [esp + 0x40]
cmovae eax, ebx
cmp cl, byte [eax]
jl 0x5180ad
cmp byte [edx + 1], 0
jle 0x518075
inc edx
jmp 0x518075
mov byte [esp + 0x1e], 1
mov byte [esp + 0x98], 1
cmp ebp, 0x10
jb 0x5180c8
push ebx
call fcn.00549eaf
add esp, 4
mov edi, dword [esp + 0x28]
mov ebp, dword [esp + 0x24]
mov bh, byte [esp + 0x17]
test bh, bh
je 0x5180e5
test edi, edi
jne 0x5180e5
mov byte [ebp], 0x30
inc ebp
mov dword [esp + 0x24], ebp
push dword [esp + 0x18]
mov ecx, esi
call fcn.00519cb0
test al, al
jne 0x5182b1
cmp byte [esi + 4], al
jne 0x51824b
mov ecx, dword [esi]
test ecx, ecx
je 0x518241
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x518232
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x518232
movzx eax, byte [edx]
jmp 0x518237
push dword [esp + 0x18]
mov ecx, esi
call fcn.00519cb0
test al, al
jne 0x5180d0
mov bh, byte [esp + 0x17]
nop
cmp byte [esi + 4], 0
jne 0x51817b
mov ecx, dword [esi]
test ecx, ecx
je 0x518171
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x518162
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x518162
movzx eax, byte [edx]
jmp 0x518167
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x518171
mov byte [esi + 5], al
jmp 0x518177
mov dword [esi], 0
mov byte [esi + 4], 1
mov cl, byte [esp + 0x70]
lea eax, [esp + 0x70]
mov dl, byte [esi + 5]
test cl, cl
je 0x51819c
lea ebx, [ebx]
cmp cl, dl
je 0x51819c
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x518190
lea ecx, [esp + 0x70]
sub eax, ecx
cmp eax, 0x16
jae 0x5180d4
cmp edi, 0x24
jl 0x5181b6
inc dword [esp + 0x20]
jmp 0x5181d1
test eax, eax
jne 0x5181be
test edi, edi
je 0x5181d1
mov al, byte [eax + 0x44ec64]
mov byte [ebp], al
inc ebp
inc edi
mov dword [esp + 0x24], ebp
mov dword [esp + 0x28], edi
mov ecx, dword [esi]
mov bh, 1
mov byte [esp + 0x17], bh
test ecx, ecx
je 0x518210
mov eax, dword [ecx + 0x1c]
cmp dword [eax], 0
je 0x518200
mov edx, dword [ecx + 0x2c]
mov eax, dword [edx]
test eax, eax
jle 0x518200
dec eax
mov dword [edx], eax
mov ecx, dword [ecx + 0x1c]
mov edx, dword [ecx]
lea eax, [edx + 1]
mov dword [ecx], eax
movzx eax, byte [edx]
jmp 0x518205
mov eax, dword [ecx]
call dword [eax + 0x1c]
cmp eax, 0xffffffff
je 0x518210
mov byte [esi + 4], 0
jmp 0x51821a
mov dword [esi], 0
mov byte [esi + 4], 1
push dword [esp + 0x18]
mov ecx, esi
call fcn.00519cb0
test al, al
je 0x518140
jmp 0x5180d8
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x518241
mov byte [esi + 5], al
jmp 0x518247
mov dword [esi], 0
mov byte [esi + 4], 1
mov ecx, dword [esp + 0x38]
mov bl, byte [esi + 5]
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
cmp bl, al
jne 0x5182b1
call fcn.0054a96c
mov eax, dword [eax]
mov al, byte [eax]
mov byte [ebp], al
inc ebp
mov ecx, dword [esi]
mov dword [esp + 0x24], ebp
test ecx, ecx
je 0x5182a7
mov eax, dword [ecx + 0x1c]
cmp dword [eax], 0
je 0x518297
mov edx, dword [ecx + 0x2c]
mov eax, dword [edx]
test eax, eax
jle 0x518297
dec eax
mov dword [edx], eax
mov ecx, dword [ecx + 0x1c]
mov edx, dword [ecx]
lea eax, [edx + 1]
mov dword [ecx], eax
movzx eax, byte [edx]
jmp 0x51829c
mov eax, dword [ecx]
call dword [eax + 0x1c]
cmp eax, 0xffffffff
je 0x5182a7
mov byte [esi + 4], 0
jmp 0x5182b1
mov dword [esi], 0
mov byte [esi + 4], 1
test edi, edi
jne 0x518390
push dword [esp + 0x18]
mov ecx, esi
call fcn.00519cb0
test al, al
jne 0x51837e
mov edi, dword [esp + 0x18]
mov ebp, dword [esp + 0x20]
cmp byte [esi + 4], 0
jne 0x51830f
mov ecx, dword [esi]
test ecx, ecx
je 0x518305
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x5182f6
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x5182f6
movzx eax, byte [edx]
jmp 0x5182fb
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x518305
mov byte [esi + 5], al
jmp 0x51830b
mov dword [esi], 0
mov byte [esi + 4], 1
mov al, byte [esi + 5]
cmp al, byte [esp + 0x70]
jne 0x51836e
mov ecx, dword [esi]
dec ebp
mov bh, 1
test ecx, ecx
je 0x518354
mov eax, dword [ecx + 0x1c]
cmp dword [eax], 0
je 0x518344
mov edx, dword [ecx + 0x2c]
mov eax, dword [edx]
test eax, eax
jle 0x518344
dec eax
mov dword [edx], eax
mov ecx, dword [ecx + 0x1c]
mov edx, dword [ecx]
lea eax, [edx + 1]
mov dword [ecx], eax
movzx eax, byte [edx]
jmp 0x518349
mov eax, dword [ecx]
call dword [eax + 0x1c]
cmp eax, 0xffffffff
je 0x518354
mov byte [esi + 4], 0
jmp 0x51835e
mov dword [esi], 0
mov byte [esi + 4], 1
push edi
mov ecx, esi
call fcn.00519cb0
test al, al
je 0x5182d4
mov edi, dword [esp + 0x28]
mov dword [esp + 0x20], ebp
mov ebp, dword [esp + 0x24]
mov byte [esp + 0x17], bh
mov eax, dword [esp + 0x20]
test eax, eax
jns 0x518390
mov byte [ebp], 0x30
inc ebp
inc eax
mov dword [esp + 0x20], eax
push dword [esp + 0x18]
mov ecx, esi
call fcn.00519cb0
test al, al
jne 0x518475
cmp byte [esi + 4], 0
jne 0x5183de
mov ecx, dword [esi]
test ecx, ecx
je 0x5183d4
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x5183c5
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x5183c5
movzx eax, byte [edx]
jmp 0x5183ca
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x5183d4
mov byte [esi + 5], al
jmp 0x5183da
mov dword [esi], 0
mov byte [esi + 4], 1
mov cl, byte [esp + 0x70]
lea eax, [esp + 0x70]
mov dl, byte [esi + 5]
test cl, cl
je 0x5183fc
lea ecx, [ecx]
cmp cl, dl
je 0x5183fc
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x5183f0
lea ecx, [esp + 0x70]
sub eax, ecx
cmp eax, 0x16
jae 0x518475
cmp edi, 0x24
jge 0x518417
mov al, byte [eax + 0x44ec64]
mov byte [ebp], al
inc ebp
inc edi
mov ecx, dword [esi]
mov bh, 1
mov byte [esp + 0x17], bh
test ecx, ecx
je 0x518456
mov eax, dword [ecx + 0x1c]
cmp dword [eax], 0
je 0x518446
mov edx, dword [ecx + 0x2c]
mov eax, dword [edx]
test eax, eax
jle 0x518446
dec eax
mov dword [edx], eax
mov ecx, dword [ecx + 0x1c]
mov edx, dword [ecx]
lea eax, [edx + 1]
mov dword [ecx], eax
movzx eax, byte [edx]
jmp 0x51844b
mov eax, dword [ecx]
call dword [eax + 0x1c]
cmp eax, 0xffffffff
je 0x518456
mov byte [esi + 4], 0
jmp 0x518460
mov dword [esi], 0
mov byte [esi + 4], 1
push dword [esp + 0x18]
mov ecx, esi
call fcn.00519cb0
test al, al
je 0x5183a3
jmp 0x51847d
test bh, bh
je 0x5187e1
push dword [esp + 0x18]
mov ecx, esi
call fcn.00519cb0
test al, al
jne 0x5187e1
cmp byte [esi + 4], al
jne 0x5184ca
mov ecx, dword [esi]
test ecx, ecx
je 0x5184c0
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x5184b1
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x5184b1
movzx eax, byte [edx]
jmp 0x5184b6
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x5184c0
mov byte [esi + 5], al
jmp 0x5184c6
mov dword [esi], 0
mov byte [esi + 4], 1
mov al, byte [esi + 5]
cmp al, byte [esp + 0x8b]
je 0x518521
cmp byte [esi + 4], 0
jne 0x518511
mov ecx, dword [esi]
test ecx, ecx
je 0x518507
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x5184f8
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x5184f8
movzx eax, byte [edx]
jmp 0x5184fd
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x518507
mov byte [esi + 5], al
jmp 0x51850d
mov dword [esi], 0
mov byte [esi + 4], 1
mov al, byte [esi + 5]
cmp al, byte [esp + 0x8a]
jne 0x5187e1
mov byte [ebp], 0x70
inc ebp
mov ecx, dword [esi]
test ecx, ecx
je 0x51855f
mov eax, dword [ecx + 0x1c]
cmp dword [eax], 0
je 0x51854f
mov edx, dword [ecx + 0x2c]
mov eax, dword [edx]
test eax, eax
jle 0x51854f
dec eax
mov dword [edx], eax
mov ecx, dword [ecx + 0x1c]
mov edx, dword [ecx]
lea eax, [edx + 1]
mov dword [ecx], eax
movzx eax, byte [edx]
jmp 0x518554
mov eax, dword [ecx]
call dword [eax + 0x1c]
cmp eax, 0xffffffff
je 0x51855f
mov byte [esi + 4], 0
jmp 0x518569
mov dword [esi], 0
mov byte [esi + 4], 1
push dword [esp + 0x18]
xor bl, bl
mov ecx, esi
mov byte [esp + 0x1b], bl
xor edi, edi
call fcn.00519cb0
test al, al
jne 0x518650
cmp byte [esi + 4], al
jne 0x5185b9
mov ecx, dword [esi]
test ecx, ecx
je 0x5185b3
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x5185a4
mov eax, dword [ecx + 0x2c]
cmp dword [eax], edi
jle 0x5185a4
movzx eax, byte [edx]
jmp 0x5185a9
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x5185b3
mov byte [esi + 5], al
jmp 0x5185b5
mov dword [esi], edi
mov byte [esi + 4], 1
mov al, byte [esi + 5]
cmp al, byte [esp + 0x87]
jne 0x5185cb
mov byte [ebp], 0x2b
jmp 0x518611
cmp byte [esi + 4], 0
jne 0x518601
mov ecx, dword [esi]
test ecx, ecx
je 0x5185fb
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x5185ec
mov eax, dword [ecx + 0x2c]
cmp dword [eax], edi
jle 0x5185ec
movzx eax, byte [edx]
jmp 0x5185f1
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x5185fb
mov byte [esi + 5], al
jmp 0x5185fd
mov dword [esi], edi
mov byte [esi + 4], 1
mov al, byte [esi + 5]
cmp al, byte [esp + 0x86]
jne 0x518650
mov byte [ebp], 0x2d
mov ecx, dword [esi]
inc ebp
test ecx, ecx
je 0x51864a
mov eax, dword [ecx + 0x1c]
cmp dword [eax], edi
je 0x51863a
mov edx, dword [ecx + 0x2c]
mov eax, dword [edx]
test eax, eax
jle 0x51863a
dec eax
mov dword [edx], eax
mov ecx, dword [ecx + 0x1c]
mov edx, dword [ecx]
lea eax, [edx + 1]
mov dword [ecx], eax
movzx eax, byte [edx]
jmp 0x51863f
mov eax, dword [ecx]
call dword [eax + 0x1c]
cmp eax, 0xffffffff
je 0x51864a
mov byte [esi + 4], 0
jmp 0x518650
mov byte [esi + 4], 1
mov dword [esi], edi
push dword [esp + 0x18]
mov ecx, esi
call fcn.00519cb0
test al, al
jne 0x518704
cmp byte [esi + 4], 0
jne 0x518699
mov ecx, dword [esi]
test ecx, ecx
je 0x518693
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x518684
mov eax, dword [ecx + 0x2c]
cmp dword [eax], edi
jle 0x518684
movzx eax, byte [edx]
jmp 0x518689
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x518693
mov byte [esi + 5], al
jmp 0x518695
mov dword [esi], edi
mov byte [esi + 4], 1
mov al, byte [esi + 5]
cmp al, byte [esp + 0x70]
jne 0x5186fb
mov ecx, dword [esi]
mov bl, 1
mov byte [esp + 0x17], bl
test ecx, ecx
je 0x5186e0
mov eax, dword [ecx + 0x1c]
cmp dword [eax], edi
je 0x5186d0
mov edx, dword [ecx + 0x2c]
mov eax, dword [edx]
test eax, eax
jle 0x5186d0
dec eax
mov dword [edx], eax
mov ecx, dword [ecx + 0x1c]
mov edx, dword [ecx]
lea eax, [edx + 1]
mov dword [ecx], eax
movzx eax, byte [edx]
jmp 0x5186d5
mov eax, dword [ecx]
call dword [eax + 0x1c]
cmp eax, 0xffffffff
je 0x5186e0
mov byte [esi + 4], 0
jmp 0x5186e6
mov dword [esi], edi
mov byte [esi + 4], 1
push dword [esp + 0x18]
mov ecx, esi
call fcn.00519cb0
test al, al
je 0x518663
jmp 0x5186ff
test bl, bl
je 0x518704
mov byte [ebp], 0x30
inc ebp
mov ebx, dword [esp + 0x18]
mov ecx, esi
push ebx
call fcn.00519cb0
test al, al
jne 0x5187e1
cmp byte [esi + 4], 0
jne 0x518753
mov ecx, dword [esi]
test ecx, ecx
je 0x518749
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x51873a
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x51873a
movzx eax, byte [edx]
jmp 0x51873f
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x518749
mov byte [esi + 5], al
jmp 0x51874f
mov dword [esi], 0
mov byte [esi + 4], 1
mov cl, byte [esp + 0x70]
lea eax, [esp + 0x70]
mov dl, byte [esi + 5]
test cl, cl
je 0x51876e
cmp cl, dl
je 0x51876e
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x518762
lea ecx, [esp + 0x70]
sub eax, ecx
cmp eax, 0x16
jae 0x5187e1
cmp edi, 8
jge 0x518789
mov al, byte [eax + 0x44ec64]
mov byte [ebp], al
inc ebp
inc edi
mov ecx, dword [esi]
mov byte [esp + 0x17], 1
test ecx, ecx
je 0x5187c7
mov eax, dword [ecx + 0x1c]
cmp dword [eax], 0
je 0x5187b7
mov edx, dword [ecx + 0x2c]
mov eax, dword [edx]
test eax, eax
jle 0x5187b7
dec eax
mov dword [edx], eax
mov ecx, dword [ecx + 0x1c]
mov edx, dword [ecx]
lea eax, [edx + 1]
mov dword [ecx], eax
movzx eax, byte [edx]
jmp 0x5187bc
mov eax, dword [ecx]
call dword [eax + 0x1c]
cmp eax, 0xffffffff
je 0x5187c7
mov byte [esi + 4], 0
jmp 0x5187d1
mov dword [esi], 0
mov byte [esi + 4], 1
push ebx
mov ecx, esi
call fcn.00519cb0
test al, al
je 0x518718
cmp byte [esp + 0x1e], 0
jne 0x5187f0
mov cl, byte [esp + 0x17]
test cl, cl
jne 0x5187f4
mov ebp, dword [esp + 0x2c]
cmp dword [esp + 0x6c], 0x10
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x20]
mov byte [ebp], 0
mov dword [ecx], eax
jb 0x518815
push dword [esp + 0x58]
call fcn.00549eaf
add esp, 4
xor eax, eax
mov ecx, dword [esp + 0x90]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x78]
xor ecx, esp
call fcn.0054a992
add esp, 0x88
ret