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

Disassembly:
sub esp, 0x148
mov eax, dword [0x851070]
xor eax, esp
mov dword [esp + 0x144], eax
push ebx
mov ebx, ecx
mov dword [esp + 0x2c], 0
mov ecx, dword [esp + 0x150]
push ebp
xor ebp, ebp
mov dword [esp + 0x28], ebx
mov eax, dword [ebx + 0x34]
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x60], ebp
mov dword [esp + 0x138], ebp
mov byte [esp + 0x13c], 0
mov dword [esp + 0x70], ebp
mov dword [esp + 0x78], ebp
mov dword [esp + 0x24], eax
push esi
push edi
test ecx, ecx
jne 0x5a1205
lea eax, [ecx + 7]
jmp 0x5a24aa
movzx esi, word [ebx + 0x18]
movzx ecx, byte [ebx + 0xc]
lea edi, [ecx + esi]
cmp edi, 2
jae 0x5a1219
xor edx, edx
jmp 0x5a123e
test edx, edx
je 0x5a1230
cmp edx, edi
jne 0x5a122f
mov eax, dword [esp + 0x164]
lea edx, [eax - 2]
add edx, edi
jmp 0x5a1237
dec edx
mov eax, dword [esp + 0x164]
mov edi, 2
sub edi, eax
lea eax, [edi + 1]
mov dword [esp + 0x44], edx
mov dword [esp + 0x3c], eax
mov eax, edx
sub eax, ecx
mov dword [esp + 0x50], edi
lea ecx, [eax + edi]
cmp ecx, esi
jne 0x5a1261
movzx ecx, byte [ebx + 9]
add ecx, 8
jmp 0x5a1275
mov eax, dword [ebx + 0x40]
mov ax, word [eax + ecx*2]
mov ch, al
mov cl, ah
movzx eax, word [ebx + 0x1a]
movzx ecx, cx
and ecx, eax
add ecx, dword [ebx + 0x38]
lea ebx, [edi*4]
mov dword [esp + 0x40], ecx
mov eax, dword [ecx]
bswap eax
mov dword [esp + 0x5c], eax
mov esi, eax
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x2c]
cmp esi, dword [eax + 0x2c]
jbe 0x5a12c2
push 0x7e931c
push 0x102e0
push 0x7e74a4
push 0x7e7488
push 0xb
call fcn.0058b3c0
add esp, 0x14
mov eax, 0xb
jmp 0x5a1341
mov eax, dword [eax]
lea ecx, [esp + 0x24]
push 0
push ecx
push esi
push eax
mov eax, dword [eax + 0xcc]
call eax
add esp, 0x10
mov dword [esp + 0x14], eax
test eax, eax
jne 0x5a1345
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx + 8]
mov dword [esp + ebx + 0xb8], eax
cmp byte [eax], 0
jne 0x5a133f
push dword [esp + 0x2c]
mov edx, esi
call fcn.0059ba70
mov ecx, dword [esp + ebx + 0xbc]
add esp, 4
call fcn.0059b890
mov dword [esp + 0x14], eax
test eax, eax
je 0x5a133f
mov ecx, dword [esp + ebx + 0xb8]
test ecx, ecx
je 0x5a1345
mov ecx, dword [ecx + 0x48]
test byte [ecx + 0x1c], 0x20
je 0x5a1334
call fcn.00594d40
mov eax, dword [esp + 0x14]
jmp 0x5a1345
call fcn.00591460
mov eax, dword [esp + 0x14]
jmp 0x5a1345
xor eax, eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], eax
test eax, eax
jne 0x5a2430
mov ecx, dword [esp + ebx + 0xb8]
cmp dword [ecx + 0x14], eax
jge 0x5a1372
call fcn.0059b660
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], eax
test eax, eax
jne 0x5a149f
mov ecx, edi
sub ebx, 4
dec edi
test ecx, ecx
je 0x5a14e6
mov esi, dword [esp + 0x30]
mov dl, byte [esi + 0xc]
test dl, dl
je 0x5a13d4
mov eax, dword [esp + 0x44]
movzx ecx, word [esi + 0x1c]
add eax, edi
cmp eax, ecx
jne 0x5a13d4
mov eax, dword [esi + 0x24]
push eax
mov dword [esp + ebx + 0x14c], eax
mov esi, dword [eax]
mov eax, dword [esp + 0x34]
bswap esi
push eax
mov dword [esp + 0x64], esi
mov eax, dword [eax + 0x4c]
mov dword [esp + 0x60], esi
call eax
movzx eax, ax
add esp, 8
mov dword [esp + ebx + 0xd8], eax
mov eax, dword [esp + 0x30]
mov byte [eax + 0xc], 0
jmp 0x5a1291
mov ecx, dword [esp + 0x44]
movzx eax, dl
sub ecx, eax
mov eax, dword [esi + 0x40]
add ecx, edi
mov ax, word [eax + ecx*2]
mov ch, al
mov cl, ah
movzx eax, word [esi + 0x1a]
mov esi, dword [esi + 0x38]
movzx ecx, cx
and ecx, eax
add esi, ecx
push esi
mov dword [esp + ebx + 0x14c], esi
mov eax, dword [esi]
bswap eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x34]
push eax
mov eax, dword [eax + 0x4c]
call eax
movzx edx, ax
add esp, 8
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x60], edx
mov dword [esp + ebx + 0xd8], edx
test byte [eax + 0x16], 0xc
je 0x5a1478
mov eax, dword [esp + 0x30]
mov ecx, esi
mov ebp, dword [esp + 0x2c]
sub ecx, dword [eax + 0x38]
lea eax, [edx + ecx]
cmp eax, dword [ebp + 0x24]
mov ebp, 0
jg 0x5a14ab
mov eax, dword [esp + 0x64]
push edx
add eax, ecx
push esi
push eax
call fcn.00737f30
mov ecx, dword [esp + 0x3c]
add esp, 0xc
mov edx, dword [esp + 0x60]
sub esi, dword [ecx + 0x38]
add esi, dword [esp + 0x64]
mov dword [esp + ebx + 0x148], esi
jmp 0x5a147c
mov ecx, dword [esp + 0x30]
lea eax, [esp + 0x1c]
push eax
movzx eax, byte [ecx + 0xc]
push edx
mov edx, dword [esp + 0x4c]
sub edx, eax
add edx, edi
call fcn.005a03c0
mov esi, dword [esp + 0x30]
add esp, 8
jmp 0x5a1291
lea eax, [edi*4]
jmp 0x5a2433
push 0x7e931c
push 0x1182d
push 0x7e74a4
push 0x7e7488
push 0xb
call fcn.0058b3c0
add esp, 0x14
lea eax, [ebx + 4]
mov ebp, 0xb
push eax
lea eax, [esp + 0xbc]
push 0
push eax
call fcn.00738a30
jmp 0x5a2447
mov eax, dword [esp + 0x2c]
mov esi, dword [eax + 0x20]
mov eax, 0xaaaaaaab
lea ecx, [esi - 8]
mul ecx
mov edi, edx
shr edi, 2
add edi, 4
imul edi, dword [esp + 0x3c]
add edi, 3
and edi, 0xfffffffc
lea ebx, [edi + edi*2]
lea eax, [esi + ebx*2]
cdq
push edx
push eax
call fcn.00588730
mov esi, eax
add esp, 8
mov dword [esp + 0x80], esi
test esi, esi
jne 0x5a1530
lea ebp, [eax + 7]
jmp 0x5a244a
mov ecx, dword [esp + 0xb8]
lea eax, [esi + edi*4]
mov dword [esp + 0x84], eax
lea eax, [esi + ebx*2]
mov dword [esp + 0x24], eax
mov dword [esp + 0x7c], ecx
movzx eax, byte [ecx + 8]
shl ax, 2
movzx eax, ax
mov dword [esp + 0x48], eax
mov al, byte [ecx + 3]
mov byte [esp + 0x13], al
movzx eax, al
mov dword [esp + 0x54], eax
xor eax, eax
mov dword [esp + 0x20], eax
cmp dword [esp + 0x3c], eax
jle 0x5a17ac
nop dword [eax]
shl eax, 2
mov dword [esp + 0x4c], eax
mov ebx, dword [esp + eax + 0xb8]
mov dword [esp + 0x60], ebx
movzx eax, word [ebx + 0x1a]
mov edi, dword [ebx + 0x38]
mov ecx, eax
movzx esi, word [ebx + 0x12]
movzx edx, word [ebx + 0x18]
add esi, edi
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x70], ecx
mov dword [esp + 0x6c], edx
mov dword [esp + 0x18], edi
mov ecx, dword [eax + 0x38]
mov al, byte [edi]
mov dword [esp + 0x28], esi
cmp al, byte [ecx]
jne 0x5a199f
movzx eax, byte [ebx + 0xc]
mov ecx, dword [esp + 0x84]
add eax, edx
add eax, eax
push eax
mov eax, dword [esp + 0x7c]
push 0
lea eax, [ecx + eax*2]
push eax
call fcn.00738a30
mov al, byte [ebx + 0xc]
add esp, 0xc
test al, al
je 0x5a1682
movzx edx, word [ebx + 0x1c]
cmp dword [esp + 0x6c], edx
jb 0x5a1977
test edx, edx
je 0x5a164b
mov ebx, dword [esp + 0x70]
mov ebp, dword [esp + 0x78]
mov ax, word [esi]
add esi, 2
mov ch, al
mov cl, ah
movzx eax, bx
movzx ecx, cx
and ecx, eax
mov eax, dword [esp + 0x80]
add ecx, edi
mov dword [eax + ebp*4], ecx
inc ebp
sub edx, 1
jne 0x5a1614
mov ebx, dword [esp + 0x60]
mov dword [esp + 0x78], ebp
mov ebp, dword [esp + 0x34]
mov dword [esp + 0x28], esi
mov al, byte [ebx + 0xc]
xor edx, edx
test al, al
je 0x5a1682
mov ebp, dword [esp + 0x78]
lea ecx, [ebx + 0x24]
mov esi, dword [esp + 0x80]
nop
mov eax, dword [ecx]
lea ecx, [ecx + 4]
mov dword [esi + ebp*4], eax
inc edx
movzx eax, byte [ebx + 0xc]
inc ebp
cmp edx, eax
jl 0x5a1660
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x18]
mov dword [esp + 0x78], ebp
mov ebp, dword [esp + 0x34]
movzx eax, word [ebx + 0x12]
xor edx, edx
movzx ecx, word [ebx + 0x18]
add eax, edi
lea eax, [eax + ecx*2]
xor ecx, ecx
mov edi, eax
sub edi, esi
inc edi
shr edi, 1
cmp esi, eax
cmova edi, ecx
test edi, edi
je 0x5a16e4
mov ebx, dword [esp + 0x18]
mov ebp, dword [esp + 0x78]
nop dword [eax + eax]
mov ax, word [esi]
lea esi, [esi + 2]
mov ch, al
inc edx
mov cl, ah
mov eax, dword [esp + 0x74]
movzx ecx, cx
movzx eax, ax
and ecx, eax
mov eax, dword [esp + 0x80]
add ecx, ebx
mov dword [eax + ebp*4], ecx
inc ebp
cmp edx, edi
jb 0x5a16b0
mov ebx, dword [esp + 0x60]
mov dword [esp + 0x78], ebp
mov ebp, dword [esp + 0x34]
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x20]
mov edi, dword [esp + 0x78]
mov dword [esp + edx + 0x114], edi
cmp eax, dword [esp + 0x50]
jge 0x5a179d
cmp byte [esp + 0x13], 0
jne 0x5a179d
movzx eax, word [esp + edx + 0xd8]
mov ecx, dword [esp + 0x84]
mov esi, dword [esp + 0x24]
push eax
push dword [esp + edx + 0x14c]
add esi, ebp
mov word [ecx + edi*2], ax
add ebp, eax
push esi
mov dword [esp + 0x40], ebp
call fcn.00737f30
mov ecx, dword [esp + 0x54]
add esp, 0xc
mov edx, dword [esp + 0x84]
movzx eax, cx
add eax, esi
mov esi, dword [esp + 0x80]
mov dword [esi + edi*4], eax
sub word [edx + edi*2], cx
cmp byte [ebx + 8], 0
jne 0x5a176d
mov eax, dword [ebx + 0x38]
mov ecx, dword [esi + edi*4]
mov eax, dword [eax + 8]
mov dword [ecx], eax
jmp 0x5a1794
cmp word [edx + edi*2], 4
jae 0x5a1794
mov eax, dword [esp + 0x24]
nop dword [eax + eax]
mov byte [eax + ebp], 0
inc ebp
inc word [edx + edi*2]
cmp word [edx + edi*2], 4
jb 0x5a1780
mov dword [esp + 0x34], ebp
mov eax, dword [esp + 0x20]
inc edi
mov dword [esp + 0x78], edi
inc eax
mov dword [esp + 0x20], eax
cmp eax, dword [esp + 0x3c]
jl 0x5a1580
mov eax, dword [esp + 0x48]
xor ecx, ecx
movzx edi, ax
xor ebx, ebx
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], ebx
mov eax, dword [eax + 0x24]
add eax, 0xfffffff4
add edi, eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x34], edi
test eax, eax
jle 0x5a18a9
nop dword [eax + eax]
mov esi, dword [esp + ebx*4 + 0xb8]
mov edx, dword [esp + ebx*4 + 0x114]
mov dword [esp + 0x4c], edx
mov eax, dword [esi + 0x3c]
mov dword [esp + ecx*4 + 0x88], eax
mov dword [esp + ecx*4 + 0xa0], edx
test ecx, ecx
je 0x5a1815
cmp edx, dword [esp + ecx*4 + 0x9c]
jne 0x5a1815
dec ecx
mov dword [esp + 0x20], ecx
cmp byte [esp + 0x13], 0
jne 0x5a1839
mov eax, dword [esp + 0x30]
inc ecx
mov dword [esp + 0x20], ecx
mov eax, dword [eax + 0x3c]
mov dword [esp + ecx*4 + 0x88], eax
lea eax, [edx + 1]
mov dword [esp + ecx*4 + 0xa0], eax
sub edi, dword [esi + 0x14]
lea eax, [esp + 0xd8]
lea eax, [eax + ebx*4]
xor ebp, ebp
mov dword [eax], edi
cmp byte [esi + 0xc], 0
mov dword [esp + 0x50], eax
jbe 0x5a1888
lea ebx, [esi + 0x24]
push dword [ebx]
mov eax, dword [esi + 0x4c]
push esi
call eax
movzx eax, ax
lea ebx, [ebx + 4]
add eax, 2
inc ebp
add edi, eax
add esp, 8
movzx eax, byte [esi + 0xc]
cmp ebp, eax
jl 0x5a1857
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x4c]
mov ebx, dword [esp + 0x24]
mov dword [eax], edi
mov eax, dword [esp + 0x3c]
inc ecx
mov edi, dword [esp + 0x34]
mov dword [esp + ebx*4 + 0xec], edx
inc ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x20], ecx
cmp ebx, eax
jl 0x5a17e0
mov dword [esp + 0x20], 0
mov edx, eax
mov dword [esp + 0x18], edx
test eax, eax
jle 0x5a1b1c
mov ecx, dword [esp + 0x78]
mov ebx, 1
mov dword [esp + 0x28], ebx
xor ebp, ebp
nop
mov esi, dword [esp + ebp + 0xd8]
cmp esi, edi
jle 0x5a19ed
nop
cmp ebx, edx
jl 0x5a190d
lea edx, [ebx + 1]
mov dword [esp + 0x18], edx
cmp edx, 5
jg 0x5a1acc
mov dword [esp + ebp + 0xdc], 0
mov esi, dword [esp + ebp + 0xd8]
mov dword [esp + ebp + 0xf0], ecx
mov edi, dword [esp + ebp + 0xec]
mov ecx, dword [esp + 0x84]
lea ebx, [edi - 1]
movzx eax, word [ecx + ebx*2]
test ax, ax
jne 0x5a193c
mov edx, ebx
lea ecx, [esp + 0x78]
call fcn.005a0770
mov ecx, dword [esp + 0x84]
movzx eax, ax
movzx eax, ax
add eax, 2
sub esi, eax
cmp byte [esp + 0x13], 0
mov dword [esp + ebp + 0xd8], esi
jne 0x5a19c9
cmp edi, dword [esp + 0x78]
jge 0x5a19c7
movzx eax, word [ecx + edi*2]
test ax, ax
jne 0x5a196f
mov edx, edi
lea ecx, [esp + 0x78]
call fcn.005a0770
movzx eax, ax
movzx eax, ax
add eax, 2
jmp 0x5a19c9
push 0x7e931c
push 0x11888
push 0x7e74a4
push 0x7e7488
push 0xb
call fcn.0058b3c0
add esp, 0x14
mov ebp, 0xb
jmp 0x5a241a
push 0x7e931c
push 0x11870
push 0x7e74a4
push 0x7e7488
push 0xb
call fcn.0058b3c0
add esp, 0x14
mov ebp, 0xb
jmp 0x5a241a
xor eax, eax
add dword [esp + ebp + 0xdc], eax
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x18]
mov dword [esp + ebp + 0xec], ebx
mov ebx, dword [esp + 0x28]
cmp esi, dword [esp + 0x34]
jg 0x5a18e0
mov edi, dword [esp + ebp + 0xec]
cmp edi, ecx
jge 0x5a1a88
mov edx, dword [esp + 0x84]
movzx eax, word [edx + edi*2]
test ax, ax
jne 0x5a1a25
mov edx, edi
lea ecx, [esp + 0x78]
call fcn.005a0770
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x84]
movzx eax, ax
movzx eax, ax
add eax, 2
add esi, eax
cmp esi, dword [esp + 0x34]
jg 0x5a1aac
inc edi
mov dword [esp + ebp + 0xd8], esi
cmp byte [esp + 0x13], 0
mov dword [esp + ebp + 0xec], edi
jne 0x5a1a79
cmp edi, ecx
jge 0x5a1a77
movzx eax, word [edx + edi*2]
test ax, ax
jne 0x5a1a6f
mov edx, edi
lea ecx, [esp + 0x78]
call fcn.005a0770
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x84]
movzx eax, ax
movzx eax, ax
add eax, 2
jmp 0x5a1a79
xor eax, eax
sub dword [esp + ebp + 0xdc], eax
cmp edi, ecx
jl 0x5a1a03
mov edx, ebx
mov dword [esp + 0x18], edx
mov eax, dword [esp + 0x20]
inc ebx
inc eax
mov dword [esp + 0x28], ebx
add ebp, 4
mov dword [esp + 0x20], eax
cmp eax, edx
jge 0x5a1b1c
mov edi, dword [esp + 0x34]
jmp 0x5a18d0
cmp edi, ecx
jge 0x5a1a88
cmp dword [esp + 0x20], 0
jle 0x5a1ac0
mov eax, dword [esp + ebp + 0xe8]
jmp 0x5a1ac2
xor eax, eax
cmp edi, eax
jle 0x5a1af4
mov edx, dword [esp + 0x18]
jmp 0x5a1a8e
push 0x7e931c
push 0x118ed
push 0x7e74a4
push 0x7e7488
push 0xb
call fcn.0058b3c0
add esp, 0x14
mov ebp, 0xb
jmp 0x5a241a
push 0x7e931c
push 0x1190e
push 0x7e74a4
push 0x7e7488
push 0xb
call fcn.0058b3c0
add esp, 0x14
mov ebp, 0xb
jmp 0x5a241a
lea eax, [edx - 1]
mov ecx, eax
mov dword [esp + 0x28], eax
test ecx, ecx
jle 0x5a1c82
nop dword [eax]
shl ecx, 2
lea eax, [esp + 0xd8]
add eax, ecx
mov dword [esp + 0x50], ecx
mov dword [esp + 0x70], eax
mov edi, dword [eax]
lea eax, [esp + ecx + 0xd4]
mov dword [esp + 0x6c], eax
mov eax, dword [eax]
mov dword [esp + 0x20], eax
lea eax, [esp + 0xec]
sub eax, 4
mov dword [esp + 0x24], eax
mov ebx, dword [eax + ecx]
mov ecx, dword [esp + 0x84]
lea esi, [ebx - 1]
mov edx, esi
sub edx, dword [esp + 0x54]
inc edx
cmp word [ecx + edx*2], 0
lea ebp, [ecx + edx*2]
jne 0x5a1b97
lea ecx, [esp + 0x78]
call fcn.005a0770
nop dword [eax]
mov ecx, dword [esp + 0x84]
cmp word [ecx + esi*2], 0
mov dword [esp + 0x74], esi
mov dword [esp + 0x4c], esi
jne 0x5a1bb1
mov edx, esi
lea ecx, [esp + 0x78]
call fcn.005a0770
test edi, edi
je 0x5a1bfb
cmp dword [esp + 0x164], 0
mov edx, ebx
jne 0x5a1c41
mov ecx, dword [esp + 0x18]
mov eax, 2
dec ecx
cmp dword [esp + 0x28], ecx
mov ecx, 0
cmove eax, ecx
mov ecx, dword [esp + 0x20]
sub ecx, eax
mov eax, dword [esp + 0x84]
movzx eax, word [eax + esi*2]
sub ecx, eax
movzx eax, word [ebp]
add eax, 2
add eax, edi
cmp eax, ecx
jg 0x5a1c41
movzx eax, word [ebp]
mov ecx, 0xfffffffe
mov edx, dword [esp + 0x24]
add eax, 2
mov ebx, dword [esp + 0x4c]
add edi, eax
mov eax, dword [esp + 0x84]
sub ebp, 2
movzx eax, word [eax + esi*2]
sub ecx, eax
mov eax, dword [esp + 0x20]
add eax, ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x20], eax
mov dword [edx + ecx], esi
sub esi, 1
mov edx, dword [esp + 0x74]
jns 0x5a1b90
jmp 0x5a1c45
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x70]
mov dword [ecx], edi
mov ecx, dword [esp + 0x6c]
mov dword [ecx], eax
mov ecx, dword [esp + 0x28]
cmp ecx, 1
jle 0x5a1c6b
mov esi, dword [esp + 0x24]
lea eax, [ecx*4]
mov eax, dword [esi + eax - 4]
jmp 0x5a1c6d
xor eax, eax
cmp edx, eax
jle 0x5a1ce8
dec ecx
mov dword [esp + 0x28], ecx
test ecx, ecx
jg 0x5a1b30
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0xb8]
xor esi, esi
mov eax, dword [eax + 0x38]
lea ebp, [esi + 1]
movzx ebx, byte [eax]
mov dword [esp + 0x54], ebx
test edx, edx
jle 0x5a1df2
cmp esi, dword [esp + 0x3c]
jge 0x5a1d52
mov eax, dword [esp + esi*4 + 0xb8]
mov dword [esp + esi*4 + 0xc4], eax
mov dword [esp + esi*4 + 0xb8], 0
mov dword [esp + 0x24], eax
mov ecx, dword [eax + 0x48]
test byte [ecx + 0x1c], 4
mov edx, dword [ecx + 0x14]
je 0x5a1d14
mov eax, dword [edx + 0x18]
cmp eax, dword [ecx + 0x18]
jb 0x5a1d14
cmp dword [edx + 0x60], 0
je 0x5a1d10
call fcn.005952b0
jmp 0x5a1d39
push 0x7e931c
push 0x11938
push 0x7e74a4
push 0x7e7488
push 0xb
call fcn.0058b3c0
add esp, 0x14
mov ebp, 0xb
jmp 0x5a241a
xor eax, eax
jmp 0x5a1d39
mov eax, dword [edx + 0x28]
mov dword [esp + 0x14], eax
test eax, eax
jne 0x5a1d3d
mov eax, dword [edx + 0x94]
cmp eax, dword [edx + 0x98]
jbe 0x5a1d34
call fcn.005968d0
jmp 0x5a1d39
call fcn.00596710
mov dword [esp + 0x14], eax
inc dword [esp + 0x38]
mov dword [esp + 0x1c], eax
test eax, eax
jne 0x5a2416
jmp 0x5a1de7
cmp dword [esp + 0x164], 0
lea edx, [esp + 0x24]
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x2c]
cmovne eax, ebp
push 0
push eax
lea eax, [esp + 0x60]
push eax
call fcn.0059f500
add esp, 0xc
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], eax
test eax, eax
jne 0x5a2416
mov edi, dword [esp + 0x24]
mov edx, ebx
mov ecx, edi
call fcn.0059b9a0
mov ecx, dword [esp + 0x2c]
inc dword [esp + 0x38]
mov eax, dword [esp + 0x78]
mov dword [esp + esi*4 + 0xc4], edi
cmp byte [ecx + 0x11], 0
mov dword [esp + esi*4 + 0x114], eax
je 0x5a1ddf
mov edx, dword [edi + 4]
lea eax, [esp + 0x1c]
push eax
mov eax, dword [esp + 0x34]
push dword [eax + 4]
push 5
call fcn.0059a670
mov eax, dword [esp + 0x28]
add esp, 0xc
mov dword [esp + 0x14], eax
test eax, eax
jne 0x5a2416
mov eax, dword [esp + 0x58]
mov dword [esp + 0x5c], eax
inc esi
cmp esi, dword [esp + 0x18]
jl 0x5a1ca0
mov ebp, dword [esp + 0x38]
xor ecx, ecx
test ebp, ebp
jle 0x5a1e47
nop dword [eax]
mov eax, dword [esp + ecx*4 + 0xc4]
mov edx, dword [eax + 4]
mov eax, dword [eax + 0x48]
mov dword [esp + ecx*4 + 0x128], edx
mov dword [esp + ecx*4 + 0x100], edx
mov ax, word [eax + 0x1c]
mov word [esp + ecx*2 + 0x148], ax
xor eax, eax
test ecx, ecx
jle 0x5a1e42
nop dword [eax]
cmp dword [esp + eax*4 + 0x128], edx
je 0x5a1fa0
inc eax
cmp eax, ecx
jl 0x5a1e30
inc ecx
cmp ecx, ebp
jl 0x5a1e00
xor edi, edi
test ebp, ebp
jle 0x5a1ee5
xor esi, esi
lea edx, [esi + 1]
cmp ebp, edx
jle 0x5a1e7a
nop word [eax + eax]
mov eax, dword [esp + edx*4 + 0x100]
mov ecx, edx
cmp eax, dword [esp + esi*4 + 0x100]
cmovae ecx, esi
inc edx
mov esi, ecx
cmp edx, ebp
jl 0x5a1e60
mov ebx, dword [esp + esi*4 + 0x100]
mov dword [esp + esi*4 + 0x100], 0xffffffff
cmp esi, edi
je 0x5a1ed8
jle 0x5a1eb1
mov eax, dword [esp + 0x2c]
mov edx, dword [eax + 0x2c]
mov eax, dword [esp + esi*4 + 0xc4]
inc edx
add edx, esi
mov ecx, dword [eax + 0x48]
xor eax, eax
mov word [ecx + 0x1c], ax
call fcn.00591650
mov eax, dword [esp + edi*4 + 0xc4]
mov edx, ebx
mov ecx, dword [eax + 0x48]
mov ax, word [esp + esi*2 + 0x148]
mov word [ecx + 0x1c], ax
call fcn.00591650
mov eax, dword [esp + edi*4 + 0xc4]
mov dword [eax + 4], ebx
inc edi
cmp edi, ebp
jl 0x5a1e51
mov ebx, dword [esp + 0x54]
mov eax, dword [esp + ebp*4 + 0xc0]
mov ecx, dword [esp + 0x40]
mov eax, dword [eax + 4]
bswap eax
mov dword [ecx], eax
test bl, 8
jne 0x5a1f2c
mov ecx, dword [esp + 0x3c]
cmp ecx, ebp
je 0x5a1f2c
lea edx, [esp + 0xb8]
lea eax, [esp + 0xc4]
cmovge eax, edx
mov eax, dword [eax + ecx*4 - 4]
mov edx, dword [eax + 0x38]
mov eax, dword [esp + ebp*4 + 0xc0]
mov ecx, dword [eax + 0x38]
mov eax, dword [edx + 8]
mov dword [ecx + 8], eax
mov eax, dword [esp + 0x2c]
cmp byte [eax + 0x11], 0
je 0x5a20d2
mov esi, dword [esp + 0xc4]
xor edi, edi
xor ebp, ebp
mov dword [esp + 0x40], 0
movzx ebx, word [esi + 0x18]
movzx eax, byte [esi + 0xc]
add ebx, eax
cmp dword [esp + 0x78], edi
jle 0x5a20d9
xor edx, edx
mov eax, esi
mov dword [esp + 0x28], edx
mov dword [esp + 0x18], eax
nop dword [eax]
mov ecx, dword [esp + 0x80]
mov ecx, dword [ecx + ebp*4]
mov dword [esp + 0x24], ecx
cmp ebp, ebx
jne 0x5a1fed
xor edx, edx
cmp byte [esp + 0x13], dl
sete dl
nop dword [eax + eax]
inc edi
cmp edi, dword [esp + 0x38]
jge 0x5a1fc8
mov esi, dword [esp + edi*4 + 0xc4]
jmp 0x5a1fcf
push 0x7e931c
push 0x11982
push 0x7e74a4
push 0x7e7488
push 0xb
call fcn.0058b3c0
add esp, 0x14
mov ebp, 0xb
jmp 0x5a241a
mov esi, dword [esp + edi*4 + 0xb8]
movzx eax, word [esi + 0x18]
movzx ecx, byte [esi + 0xc]
add eax, edx
add ecx, eax
add ebx, ecx
cmp ebp, ebx
je 0x5a1f90
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x28]
cmp ebp, dword [esp + edx + 0xec]
jne 0x5a2020
mov eax, dword [esp + 0x40]
inc eax
cmp byte [esp + 0x13], 0
mov dword [esp + 0x40], eax
lea edx, [eax*4]
mov eax, dword [esp + edx + 0xc4]
mov dword [esp + 0x28], edx
mov dword [esp + 0x18], eax
je 0x5a20c3
cmp edi, dword [esp + 0x38]
jge 0x5a2044
mov eax, dword [eax + 4]
cmp eax, dword [esp + edi*4 + 0x128]
mov eax, dword [esp + 0x18]
jne 0x5a2044
cmp ecx, dword [esi + 0x38]
jb 0x5a2044
cmp ecx, dword [esi + 0x3c]
jb 0x5a20c3
cmp word [esp + 0x48], 0
jne 0x5a206e
lea edx, [esp + 0x1c]
push edx
push dword [eax + 4]
mov edx, dword [ecx]
mov ecx, dword [esp + 0x34]
push 5
bswap edx
call fcn.0059a670
mov eax, dword [esp + 0x28]
add esp, 0xc
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x84]
movzx eax, word [eax + ebp*2]
test ax, ax
jne 0x5a208c
mov edx, ebp
lea ecx, [esp + 0x78]
call fcn.005a0770
movzx eax, ax
mov ecx, dword [esp + 0x18]
cmp ax, word [ecx + 0x10]
jbe 0x5a20b3
lea eax, [esp + 0x1c]
mov edx, esi
push eax
push dword [esp + 0x28]
call fcn.0059ab90
mov eax, dword [esp + 0x24]
add esp, 8
mov dword [esp + 0x14], eax
jmp 0x5a20b7
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x5a2416
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x28]
inc ebp
cmp ebp, dword [esp + 0x78]
jl 0x5a1f70
mov esi, dword [esp + 0xc4]
mov ebx, dword [esp + 0x38]
xor edi, edi
lea eax, [ebx - 1]
test eax, eax
jle 0x5a222e
nop word [eax + eax]
mov eax, dword [esp + edi*4 + 0xec]
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x84]
lea ecx, [ecx + eax*4]
mov ebp, dword [esp + edi*4 + 0xc4]
mov ebx, dword [esp + 0x64]
add ebx, dword [esp + 0x68]
movzx eax, word [edx + eax*2]
mov esi, dword [ecx]
mov dword [esp + 0x54], ebp
mov ebp, dword [esp + 0x48]
movzx edx, bp
mov ebp, dword [esp + 0x54]
add edx, eax
cmp byte [ebp + 8], 0
jne 0x5a2141
mov ecx, dword [ebp + 0x38]
mov eax, dword [esi]
mov dword [ecx + 8], eax
jmp 0x5a21e5
cmp byte [esp + 0x13], 0
je 0x5a21cc
lea eax, [esp + 0x128]
push eax
push dword [ecx - 4]
mov eax, dword [ebp + 0x50]
push ebp
call eax
mov edx, dword [esp + 0x138]
add esp, 0xc
mov ecx, dword [esp + 0x128]
mov esi, ebx
test edx, edx
ja 0x5a21b8
jb 0x5a217b
cmp ecx, 0x7f
ja 0x5a218d
mov eax, 1
and cl, 0x7f
mov byte [ebx + 4], cl
xor ebx, ebx
lea edx, [eax + 4]
jmp 0x5a21e5
test edx, edx
ja 0x5a21b8
jb 0x5a219b
cmp ecx, 0x3fff
ja 0x5a21b8
mov eax, ecx
and cl, 0x7f
shrd eax, edx, 7
mov byte [ebx + 5], cl
or al, 0x80
mov byte [ebx + 4], al
mov eax, 2
xor ebx, ebx
lea edx, [eax + 4]
jmp 0x5a21e5
push edx
push ecx
lea ecx, [ebx + 4]
call fcn.0058c9b0
add esp, 8
xor ebx, ebx
lea edx, [eax + 4]
jmp 0x5a21e5
sub esi, 4
cmp eax, 4
jne 0x5a21e5
mov eax, dword [esp + 0x30]
push esi
push eax
mov eax, dword [eax + 0x4c]
call eax
add esp, 8
movzx edx, ax
add dword [esp + 0x68], edx
lea eax, [esp + 0x1c]
mov ecx, dword [esp + 0x30]
push eax
push dword [ebp + 4]
push ebx
push edx
mov edx, dword [esp + 0x54]
push esi
lea edx, [edx + edi]
call fcn.005a04e0
mov ebp, dword [esp + 0x30]
add esp, 0x14
mov dword [esp + 0x14], ebp
test ebp, ebp
jne 0x5a241a
mov ebx, dword [esp + 0x38]
inc edi
lea eax, [ebx - 1]
cmp edi, eax
jl 0x5a20f0
mov esi, dword [esp + 0xc4]
mov edi, 1
sub edi, ebx
mov dword [esp + 0x40], edi
cmp edi, ebx
jge 0x5a2325
mov ebp, dword [esp + 0xec]
nop dword [eax + eax]
mov eax, edi
lea ebx, [esp + 0x140]
cdq
mov ecx, eax
xor ecx, edx
sub ecx, edx
add ebx, ecx
cmp byte [ebx], 0
jne 0x5a230d
test edi, edi
jns 0x5a2283
mov eax, dword [esp + ecx*4 + 0x110]
cmp eax, dword [esp + ecx*4 + 0xe8]
jl 0x5a230d
test ecx, ecx
jne 0x5a228f
xor edx, edx
mov esi, ebp
xor eax, eax
jmp 0x5a22c4
cmp ecx, dword [esp + 0x3c]
jge 0x5a22a7
xor edx, edx
cmp byte [esp + 0x13], dl
sete dl
add edx, dword [esp + ecx*4 + 0x110]
jmp 0x5a22ab
mov edx, dword [esp + 0x78]
mov esi, dword [esp + ecx*4 + 0xec]
xor eax, eax
cmp byte [esp + 0x13], al
sete al
add eax, dword [esp + ecx*4 + 0xe8]
sub esi, eax
lea edi, [ecx*4]
lea ecx, [esp + 0x78]
push ecx
mov ecx, dword [esp + edi + 0xc8]
push esi
push eax
call fcn.005a0bc0
add esp, 0xc
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], eax
test eax, eax
jne 0x5a2416
mov eax, dword [esp + edi + 0xc4]
mov ecx, dword [esp + 0x34]
sub ecx, dword [esp + edi + 0xd8]
mov edi, dword [esp + 0x40]
mov byte [ebx], 1
mov dword [eax + 0x14], ecx
mov ebx, dword [esp + 0x38]
inc edi
mov dword [esp + 0x40], edi
cmp edi, ebx
jl 0x5a2250
mov esi, dword [esp + 0xc4]
cmp dword [esp + 0x160], 0
je 0x5a2390
mov ebp, dword [esp + 0x30]
cmp word [ebp + 0x18], 0
jne 0x5a2390
movzx eax, byte [ebp + 9]
cmp eax, dword [esi + 0x14]
jg 0x5a2390
or edx, 0xffffffff
mov ecx, esi
call fcn.0059ac20
mov ecx, dword [esp + 0xc4]
mov edx, ebp
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x1c]
push eax
call fcn.005a10d0
mov eax, dword [esp + 0x20]
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
jne 0x5a23e8
mov ecx, dword [esp + 0xc4]
mov edx, ecx
push dword [ecx + 4]
mov ecx, dword [ecx + 0x34]
call fcn.0059fbb0
add esp, 4
mov dword [esp + 0x14], eax
jmp 0x5a23e8
mov ecx, dword [esp + 0x2c]
cmp byte [ecx + 0x11], 0
je 0x5a23e4
cmp word [esp + 0x48], 0
jne 0x5a23e4
xor esi, esi
test ebx, ebx
jle 0x5a23e4
nop dword [eax + eax]
mov eax, dword [esp + esi*4 + 0xc4]
lea edx, [esp + 0x1c]
push edx
push dword [eax + 4]
mov eax, dword [eax + 0x38]
push 5
mov edx, dword [eax + 8]
bswap edx
call fcn.0059a670
mov ecx, dword [esp + 0x38]
inc esi
add esp, 0xc
cmp esi, ebx
jl 0x5a23b0
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x14], eax
jmp 0x5a23e8
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x3c]
mov esi, ebx
cmp ebx, ebp
jge 0x5a2416
mov ecx, dword [esp + esi*4 + 0xb8]
test eax, eax
jne 0x5a240d
push dword [ecx + 4]
mov edx, ecx
mov ecx, dword [ecx + 0x34]
call fcn.0059fbb0
add esp, 4
inc esi
cmp esi, ebp
jl 0x5a23f2
mov dword [esp + 0x14], eax
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x80]
test eax, eax
je 0x5a244a
mov edx, eax
xor ecx, ecx
call fcn.00588a20
jmp 0x5a244a
lea eax, [ebx + 4]
push eax
lea eax, [esp + 0xbc]
push 0
push eax
call fcn.00738a30
mov ebp, dword [esp + 0x20]
add esp, 0xc
mov ebx, dword [esp + 0x3c]
xor esi, esi
test ebx, ebx
jle 0x5a2479
mov ecx, dword [esp + esi*4 + 0xb8]
test ecx, ecx
je 0x5a2474
mov ecx, dword [ecx + 0x48]
test byte [ecx + 0x1c], 0x20
je 0x5a246f
call fcn.00594d40
jmp 0x5a2474
call fcn.00591460
inc esi
cmp esi, ebx
jl 0x5a2454
mov ebx, dword [esp + 0x38]
xor esi, esi
test ebx, ebx
jle 0x5a24a8
mov ecx, dword [esp + esi*4 + 0xc4]
test ecx, ecx
je 0x5a24a3
mov ecx, dword [ecx + 0x48]
test byte [ecx + 0x1c], 0x20
je 0x5a249e
call fcn.00594d40
jmp 0x5a24a3
call fcn.00591460
inc esi
cmp esi, ebx
jl 0x5a2483
mov eax, ebp
mov ecx, dword [esp + 0x154]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00735c28
add esp, 0x148
ret