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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x11c
mov ecx, dword [0x581b261c]
xor eax, eax
cmp dword [ebp + 8], eax
push ebx
push esi
push edi
mov dword [ebp - 0x2c], 0xb86
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x30], ecx
je 0x5816075c
push dword [ebp + 8]
push eax
call fcn.58163648
pop ecx
pop ecx
mov eax, dword [0x581b41c4]
push 5
pop ecx
lea edi, [ebp - 0x18]
lea esi, [eax + 0xe8]
rep movsd dword es:[edi], dword [esi]
mov edx, dword [eax + 0xc]
mov edi, dword [ebp + 0xc]
mov cl, byte [eax + 0xe5]
mov ebx, edx
mov esi, edx
mov byte [ebp - 1], cl
shr ebx, 0x1b
shr esi, 2
and ebx, 1
and esi, 1
cmp edi, 0x69
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x1c], ebx
ja 0x58160973
je 0x581608a4
cmp edi, 0x50
jne case.0x58160b7c.196
movzx ecx, cl
sub ecx, 0
je 0x58160850
dec ecx
je 0x581607fe
dec ecx
je 0x581607e2
dec ecx
dec ecx
jne 0x58160b0c
test dl, 0x40
je 0x58160b0c
mov eax, dword [ebp - 0xc]
push 5
sub eax, dword [ebp - 0x14]
push eax
push 0xffffffffffffffff
push dword [ebp - 0x14]
jmp 0x58160bf3
test dh, 8
je 0x58160b0c
mov eax, dword [ebp - 0x10]
push 0
sub eax, dword [ebp - 0x18]
push eax
push 0xffffffffffffffff
push dword [ebp - 0x18]
jmp 0x58160bf3
mov eax, dword [ebp - 0x10]
sub eax, dword [ebp - 0x18]
cmp eax, 1
jne 0x58160b0c
mov eax, dword [ebp - 0xc]
sub eax, dword [ebp - 0x14]
cmp eax, 1
jne 0x58160b0c
lea eax, [ebp - 0xac]
push eax
push 1
push dword [ebp - 0x14]
push dword [ebp - 0x18]
call fcn.5816472e
add esp, 0x10
push 1
push dword [ebp - 0x14]
push dword [ebp - 0x18]
call fcn.58164901
add esp, 0xc
push 1
push 0
call fcn.58166149
pop ecx
pop ecx
jmp 0x58160893
cmp byte [eax + 0xcc], 0
je 0x58160b0c
mov ecx, dword [eax + 0x1c]
cmp ecx, 0xffffffff
je 0x58160b0c
lea edx, [ebp - 0xac]
push edx
push 1
push dword [eax + 0x70]
push ecx
call fcn.5816472e
mov eax, dword [0x581b41c4]
add esp, 0x10
push 1
push dword [eax + 0x70]
push dword [eax + 0x1c]
call fcn.58164901
add esp, 0xc
lea eax, [ebp - 0xac]
push eax
call fcn.5816fbd6
jmp 0x581610bf
test cl, cl
jne 0x58160901
mov ecx, dword [eax + 0x1c]
cmp ecx, 0xffffffff
je 0x58160901
lea edx, [ebp - 0xac]
push edx
push 1
push dword [eax + 0x70]
push ecx
call fcn.5816472e
mov eax, dword [0x581b41c4]
add esp, 0x10
push 1
push dword [eax + 0x70]
push dword [eax + 0x1c]
call fcn.58164901
add esp, 0xc
lea eax, [ebp - 0xac]
push eax
push 0xe
push 1
call fcn.58163a1c
add esp, 0xc
lea eax, [ebp - 0xac]
push eax
mov eax, dword [ebp - 0xa4]
call dword [eax + 0xa4]
pop ecx
cmp byte [ebp - 1], 1
jne 0x58160b0c
mov eax, dword [ebp - 0x10]
sub eax, dword [ebp - 0x18]
cmp eax, 1
jne 0x58160b0c
mov eax, dword [ebp - 0xc]
sub eax, dword [ebp - 0x14]
cmp eax, 1
jne 0x58160b0c
lea eax, [ebp - 0xac]
push eax
push 1
push dword [ebp - 0x14]
push dword [ebp - 0x18]
call fcn.5816472e
add esp, 0x10
push 1
push dword [ebp - 0x14]
push dword [ebp - 0x18]
call fcn.58164901
add esp, 0xc
push 1
push 0
call fcn.58166149
pop ecx
lea eax, [ebp - 0xac]
pop ecx
push eax
mov eax, dword [ebp - 0xa4]
call dword [eax + 0xa4]
jmp 0x581610bf
cmp edi, 0xa3
ja 0x58160b4f
mov ecx, 0xa2
cmp edi, ecx
jae 0x58160a6e
cmp edi, 0x6b
jne case.0x58160b7c.196
call fcn.58149103
test al, 4
jne 0x581609b5
test ebx, ebx
je case.0x58160b7c.196
mov eax, dword [0x581b41c4]
test byte [eax + 0x10], 2
je case.0x58160b7c.196
call fcn.58149103
test al, 4
jne 0x581609da
mov eax, dword [0x581b41c4]
mov ecx, dword [eax + 0x70]
mov eax, ecx
inc eax
neg eax
sbb eax, eax
and eax, ecx
push eax
call fcn.5816629e
jmp 0x581610bf
cmp byte [ebp - 1], 4
je 0x58160d26
mov eax, dword [0x581b41c4]
mov ecx, dword [eax + 0x70]
cmp ecx, 0xffffffff
je case.0x58160b7c.196
test byte [eax + 0xc], 8
je case.0x58160b7c.196
lea edx, [ebp - 0xac]
push edx
push 1
push ecx
push dword [eax + 0x1c]
call fcn.5816472e
add esp, 0x10
lea eax, [ebp - 0xac]
push eax
mov eax, dword [ebp - 0xa4]
call dword [eax + 0x80]
test eax, eax
pop ecx
jne case.0x58160b7c.196
mov eax, dword [0x581b41c4]
and dword [ebp - 0x34], 0
lea ecx, [ebp - 0x3c]
mov eax, dword [eax + 0x70]
push ecx
push eax
push 0xffffffffffffffff
call fcn.58165828
mov eax, dword [ebp - 0x38]
add esp, 0xc
mov eax, dword [eax]
test byte [eax + 1], 0x80
jne 0x58160b0c
mov eax, dword [0x581b41c4]
mov ecx, dword [eax + 0x70]
mov dword [ebp - 0x14], ecx
mov ecx, dword [eax + 0x70]
inc ecx
jmp 0x58161512
xor ebx, ebx
cmp edi, ecx
setne bl
inc ebx
inc ebx
mov edi, ebx
test dh, 0x80
je 0x58160b38
cmp dword [eax + 0x1c], 0xffffffff
je 0x58160b38
xor esi, esi
push esi
call fcn.58164664
test eax, eax
pop ecx
je 0x58160b38
call fcn.58165371
test eax, eax
je 0x58160ace
push 1
push esi
push edi
call fcn.58162c3c
mov eax, dword [0x581b41c4]
add esp, 0xc
push esi
push esi
push 0x87
push dword [eax + 0x74]
push dword [eax + 0x1c]
call fcn.58163f4f
add esp, 0x14
jmp 0x58160afe
cmp edi, 3
push 1
jne 0x58160ae7
mov eax, dword [0x581b41c4]
push 0x1c6
push dword [eax + 0x7c]
push dword [eax + 0x1c]
jmp 0x58160af6
mov eax, dword [0x581b41c4]
push 0x1c5
push 0xffffffffffffffff
push dword [eax + 0x1c]
call fcn.58165e50
add esp, 0x10
push esi
push esi
push 1
push 1
call fcn.581617c9
add esp, 0x10
xor eax, eax
cmp dword [ebp - 0x24], eax
jne 0x58160b18
mov dword [ebp - 0x2c], eax
jmp 0x58160b38
xor ecx, ecx
cmp dword [ebp - 0x24], eax
setle cl
dec ecx
and cx, 0xfc4b
add ecx, 0xb86
mov dword [ebp - 0x2c], ecx
jmp 0x58160b38
mov dword [ebp - 0x2c], 0xb88
cmp dword [ebp + 8], 0
je 0x58160b47
push dword [ebp - 0x30]
call fcn.58163682
pop ecx
mov eax, dword [ebp - 0x2c]
pop edi
pop esi
pop ebx
leave
ret
mov ecx, 0xf8
cmp edi, ecx
ja 0x5816151b
je 0x581614ed
lea ecx, [edi - 0xa4]
cmp ecx, 0x41
ja case.0x58160b7c.196
mov edx, dword [ebp - 0x10]
mov ebx, ecx
mov ecx, dword [ebp - 0xc]
movzx ebx, byte [ebx + 0x581616a4]
jmp dword [ebx*4 + 0x58161620]
cmp byte [eax + 0x11d], 0
je 0x58160ba1
lea eax, [ebp + 0xc]
mov dword [ebp + 0xc], 1
push eax
call fcn.5817e615
jmp 0x581610bf
cmp byte [ebp - 1], 1
je 0x58160d26
push 0
call fcn.581657e5
jmp 0x581610bf
cmp byte [ebp - 1], 2
jne 0x58160bd1
test byte [ebp - 0x27], 2
je 0x58160bd1
mov eax, dword [ebp - 0x10]
push 0
sub eax, dword [ebp - 0x18]
push eax
push dword [ebp - 0x18]
jmp 0x58160bf1
cmp byte [ebp - 1], 4
jne case.0x58160b7c.196
test byte [ebp - 0x28], 0x10
je case.0x58160b7c.196
mov eax, dword [ebp - 0xc]
push 5
sub eax, dword [ebp - 0x14]
push eax
push dword [ebp - 0x14]
push 0xffffffffffffffff
call fcn.5815c2b5
add esp, 0x10
mov dword [ebp - 0x24], eax
jmp 0x58160b0c
xor esi, esi
cmp byte [ebp - 1], 0
je case.0x58160b7c.196
push 1
push esi
call fcn.58166149
pop ecx
pop ecx
push esi
push 1
push esi
jmp 0x58160b02
mov ecx, dword [0x581ae534]
xor esi, esi
movzx ecx, byte [ecx + 0x2d1]
sub ecx, esi
je 0x58160c57
dec ecx
dec ecx
jne case.0x58160b7c.181
mov ecx, dword [eax + 0x70]
lea edx, [ecx + 1]
cmp edx, dword [eax + 0x7c]
je 0x58160c55
push 1
push 0x1c5
push ecx
jmp 0x581612fb
xor esi, esi
push esi
call fcn.58164664
pop ecx
push esi
push 1
push esi
push esi
jmp 0x58160b04
cmp byte [ebp - 1], 2
je 0x58160d26
mov ecx, dword [eax + 0x1c]
cmp ecx, 0xffffffff
je case.0x58160b7c.196
test byte [ebp - 0x27], 1
je case.0x58160b7c.196
lea edx, [ebp - 0xac]
push edx
push 1
push dword [eax + 0x70]
push ecx
call fcn.5816472e
add esp, 0x10
lea eax, [ebp - 0xac]
push eax
mov eax, dword [ebp - 0xa4]
call dword [eax + 0x80]
test eax, eax
pop ecx
jne case.0x58160b7c.196
and dword [ebp - 0x34], eax
lea eax, [ebp - 0x3c]
push eax
mov eax, dword [0x581b41c4]
push 0xffffffffffffffff
push dword [eax + 0x1c]
call fcn.58165828
mov eax, dword [ebp - 0x38]
add esp, 0xc
mov eax, dword [eax]
test byte [eax + 1], 0x40
jne 0x58160b0c
mov eax, dword [0x581b41c4]
mov ecx, dword [eax + 0x1c]
mov dword [ebp - 0x18], ecx
mov ecx, dword [eax + 0x1c]
inc ecx
mov byte [ebp - 7], 5
mov dword [ebp - 0x10], ecx
jmp 0x581615f3
cmp dword [ebp - 0x1c], 0
jne 0x58160d4f
cmp byte [ebp - 1], 4
je 0x58160d26
jmp 0x58160d3e
cmp dword [ebp - 0x1c], 0
jne 0x58160df7
jmp 0x58160d3e
cmp dword [ebp - 0x1c], 0
jne 0x58160eae
cmp byte [ebp - 1], 2
jne 0x58160d3e
push 1
push 0
call fcn.58166149
jmp 0x581610be
cmp dword [ebp - 0x1c], 0
jne 0x58160f68
push edi
call fcn.581616e6
jmp 0x581610bf
cmp dword [ebp - 0x1c], 0
je case.0x58160b7c.168
add eax, 0x1c
push eax
call fcn.5815dfa1
test eax, eax
pop ecx
je 0x58160b0c
xor eax, eax
push eax
push eax
push eax
jmp 0x58160e0f
mov bl, byte [ebp - 1]
test bl, bl
jne 0x58160d9c
cmp dword [ebp - 0x1c], 0
jne 0x58160d9c
mov ecx, dword [eax + 0x1c]
dec ecx
mov dword [ebp - 0x18], ecx
mov ecx, dword [eax + 0x1c]
inc ecx
mov dword [ebp - 0x10], ecx
mov ecx, dword [eax + 0x70]
mov dword [ebp - 0x14], ecx
mov ecx, dword [eax + 0x70]
inc ecx
mov byte [ebp - 7], 6
mov dword [ebp - 0xc], ecx
jmp 0x58160fab
cmp bl, 2
je 0x58160daa
cmp bl, 1
jne 0x58160b0c
mov dl, byte [ebp - 7]
test dl, 2
je 0x58160dba
dec dword [ebp - 0x18]
mov ecx, dword [ebp - 0x10]
jmp 0x58160de0
mov ecx, dword [ebp - 0x18]
lea esi, [ecx + 1]
mov ecx, dword [ebp - 0x10]
cmp ecx, esi
jne 0x58160dd5
dec dword [ebp - 0x18]
and dl, 0xfe
or dl, 2
mov byte [ebp - 7], dl
jmp 0x58160de0
dec ecx
mov dword [ebp - 0x20], 1
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 0x18]
cmp edx, dword [eax + 0x34]
jb 0x58160b0c
jmp 0x58160e95
cmp dword [ebp - 0x1c], 0
je case.0x58160b7c.169
add eax, 0x1c
push eax
call fcn.5815dfa1
test eax, eax
pop ecx
je 0x58160b0c
push 0
push 0
push 1
call fcn.58162c3c
jmp 0x5816128d
mov bl, byte [ebp - 1]
test bl, bl
jne 0x58160e43
cmp dword [ebp - 0x1c], 0
jne 0x58160e43
mov ecx, dword [eax + 0x1c]
mov dword [ebp - 0x18], ecx
mov ecx, dword [eax + 0x1c]
inc ecx
inc ecx
mov dword [ebp - 0x10], ecx
mov ecx, dword [eax + 0x70]
mov dword [ebp - 0x14], ecx
mov ecx, dword [eax + 0x70]
inc ecx
jmp 0x58160fa4
cmp bl, 2
je 0x58160e51
cmp bl, 1
jne 0x58160b0c
mov dl, byte [ebp - 7]
mov ecx, dword [ebp - 0x10]
test dl, 1
je 0x58160e65
mov dword [ebp - 0x20], 1
jmp 0x58160e7d
lea esi, [ecx - 1]
cmp dword [ebp - 0x18], esi
jne 0x58160e7d
and dl, 0xfd
mov dword [ebp - 0x20], 1
or dl, 1
mov byte [ebp - 7], dl
cmp dword [ebp - 0x20], 0
je 0x58160e89
inc ecx
mov dword [ebp - 0x10], ecx
jmp 0x58160e8c
inc dword [ebp - 0x18]
cmp ecx, dword [eax + 0x28]
ja 0x58160b0c
cmp bl, 2
je 0x581615f3
jmp 0x5816107a
mov ebx, dword [ebp - 0x1c]
test ebx, ebx
je 0x58160eb5
test esi, esi
jne 0x58160eb5
push 1
jmp 0x581612a0
cmp byte [ebp - 1], 0
jne 0x58160ef4
test ebx, ebx
je 0x58160ec3
test esi, esi
je 0x58160ef4
mov ecx, dword [eax + 0x1c]
mov dword [ebp - 0x18], ecx
mov ecx, dword [eax + 0x1c]
inc ecx
mov dword [ebp - 0x10], ecx
mov ecx, dword [eax + 0x70]
mov dword [ebp - 0x14], ecx
mov ecx, dword [eax + 0x70]
cmp ecx, dword [eax + 0x88]
jbe 0x58160ee4
dec dword [ebp - 0x14]
mov ecx, dword [eax + 0x70]
mov byte [ebp - 7], 9
inc ecx
mov dword [ebp - 0xc], ecx
jmp 0x58160fab
test byte [ebp - 1], 5
je 0x58160b0c
test ebx, ebx
je 0x58160f0a
test esi, esi
je 0x58160b0c
mov cl, byte [ebp - 7]
mov edx, dword [ebp - 0x14]
test cl, 8
je 0x58160f23
cmp edx, dword [eax + 0x88]
jbe 0x58160f52
dec edx
mov dword [ebp - 0x14], edx
jmp 0x58160f4c
lea esi, [edx + 1]
cmp dword [ebp - 0xc], esi
jne 0x58160f42
cmp edx, dword [eax + 0x88]
jbe 0x58160f37
dec edx
mov dword [ebp - 0x14], edx
and cl, 0xfb
or cl, 8
mov byte [ebp - 7], cl
jmp 0x58160f4c
dec dword [ebp - 0xc]
mov dword [ebp - 0x20], 1
cmp edx, dword [eax + 0x88]
jb 0x58160b0c
jmp 0x5816106d
mov ebx, dword [ebp - 0x1c]
test ebx, ebx
je 0x58160f7e
test esi, esi
jne 0x58160f7e
mov ecx, dword [eax + 0x1c]
xor edx, edx
cmp ecx, 0xffffffff
setne dl
push edx
push 0x1c5
jmp 0x581611ab
cmp byte [ebp - 1], 0
jne 0x58161002
test ebx, ebx
je 0x58160f8c
test esi, esi
je 0x58161002
mov ecx, dword [eax + 0x1c]
mov dword [ebp - 0x18], ecx
mov ecx, dword [eax + 0x1c]
inc ecx
mov dword [ebp - 0x10], ecx
mov ecx, dword [eax + 0x70]
mov dword [ebp - 0x14], ecx
mov ecx, dword [eax + 0x70]
inc ecx
inc ecx
mov dword [ebp - 0xc], ecx
mov byte [ebp - 7], 5
lea ecx, [ebp - 0x11c]
push ecx
push 1
push dword [eax + 0x70]
push dword [eax + 0x1c]
call fcn.5816472e
or dword [ebp - 0x11c], 1
add esp, 0x10
lea eax, [ebp - 0x11c]
push eax
mov eax, dword [ebp - 0x114]
call dword [eax + 0x80]
test eax, eax
pop ecx
jne 0x58160ff0
mov eax, dword [0x581b41c4]
test byte [eax + 0xc], 2
jne 0x58161077
lea eax, [ebp - 0x11c]
push eax
push 1
push 0
push 0
jmp 0x58160b04
test byte [ebp - 1], 5
je 0x58160b0c
test ebx, ebx
je 0x58161018
test esi, esi
je 0x58160b0c
mov cl, byte [ebp - 7]
test cl, 4
je 0x58161029
mov dword [ebp - 0x20], 1
jmp 0x58161042
mov edx, dword [ebp - 0xc]
dec edx
cmp dword [ebp - 0x14], edx
jne 0x58161042
and cl, 0xf7
mov dword [ebp - 0x20], 1
or cl, 4
mov byte [ebp - 7], cl
cmp dword [ebp - 0x20], 0
je 0x5816105e
inc dword [ebp - 0xc]
push dword [ebp - 0xc]
push 1
call fcn.5816340c
mov eax, dword [0x581b41c4]
pop ecx
pop ecx
jmp 0x58161061
inc dword [ebp - 0x14]
mov ecx, dword [ebp - 0xc]
cmp ecx, dword [eax + 0x7c]
ja 0x58160b0c
cmp byte [ebp - 8], 4
je 0x581614ae
mov ecx, dword [ebp - 0x10]
cmp dword [ebp - 0x20], 0
mov byte [ebp - 8], 1
je 0x5816108a
mov eax, dword [ebp - 0xc]
dec eax
jmp 0x5816108d
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0x20], 0
je 0x58161096
dec ecx
jmp 0x58161099
mov ecx, dword [ebp - 0x18]
push 1
push eax
push ecx
call fcn.58164901
mov al, byte [ebp - 1]
add esp, 0xc
and al, 0x20
neg al
sbb eax, eax
and eax, 0xc
add eax, 4
push eax
lea eax, [ebp - 0x18]
push eax
call fcn.58166568
pop ecx
pop ecx
jmp 0x58160b0c
mov ecx, dword [0x581ae534]
test byte [ecx + 0x285], 0x80
jne case.0x58160b7c.196
mov ebx, dword [ebp - 0x1c]
test ebx, ebx
jne case.0x58160b7c.196
cmp byte [ebp - 1], 4
jne 0x5816112b
mov ecx, dword [eax + 0x88]
cmp dword [ebp - 0x14], ecx
jne 0x581610fc
mov edx, dword [ebp - 0xc]
cmp edx, dword [eax + 0x78]
je 0x5816112b
cmp dword [eax + 0x78], ecx
jbe 0x5816112b
mov ecx, dword [eax + 0x70]
push 0xffffffffffffffff
push 2
mov dword [eax + 0x90], ecx
call fcn.5816340c
mov eax, dword [0x581b41c4]
pop ecx
pop ecx
mov ecx, dword [eax + 0x88]
mov dword [ebp - 0x14], ecx
mov ecx, dword [eax + 0x78]
jmp 0x581611cf
cmp byte [ebp - 1], 1
jne case.0x58160b7c.196
cmp dword [ebp - 0x18], 0
jne 0x58161147
mov ecx, dword [ebp - 0x10]
cmp ecx, dword [eax + 0x28]
je case.0x58160b7c.196
mov ecx, dword [eax + 0x1c]
mov dword [eax + 0x3c], ecx
jmp 0x581614ae
cmp byte [ebp - 1], 4
je 0x58161162
cmp byte [ebp - 1], 1
jne case.0x58160b7c.196
mov ebx, dword [ebp - 0x1c]
test ebx, ebx
jne case.0x58160b7c.196
mov ecx, dword [ebp - 0xc]
sub ecx, dword [ebp - 0x14]
cmp ecx, 1
jne 0x581611b4
mov ecx, dword [eax + 0x3c]
cmp ecx, 0xffffffff
je 0x58160b0c
test byte [ebp - 0x28], 2
je 0x581611a4
mov edx, dword [ebp - 0x10]
sub edx, dword [ebp - 0x18]
cmp edx, 1
je 0x581611a4
mov dword [ebp - 0x18], ecx
mov ecx, dword [eax + 0x3c]
inc ecx
mov dword [ebp - 0x10], ecx
jmp 0x5816107a
push 2
push 0x101
push dword [eax + 0x70]
push ecx
jmp 0x5816134b
mov edx, dword [eax + 0x90]
lea ecx, [eax + 0x90]
cmp edx, 0xffffffff
je 0x58160b0c
mov dword [ebp - 0x14], edx
mov ecx, dword [ecx]
inc ecx
mov dword [ebp - 0xc], ecx
jmp 0x581614ae
cmp byte [ebp - 1], 2
jne 0x58160b0c
mov ecx, dword [ebp - 0x18]
cmp ecx, dword [eax + 0x38]
jbe 0x58160b0c
lea esi, [ecx - 1]
jmp 0x5816120b
cmp byte [ebp - 1], 2
jne 0x58160b0c
cmp edx, dword [eax + 0x28]
je 0x58160b0c
mov ecx, dword [ebp - 0x18]
lea esi, [edx + 1]
test byte [ebp - 0x27], 0x10
je 0x58160b0c
sub edx, ecx
push 0
push edx
push esi
push ecx
call fcn.5815c2b5
add esp, 0x10
dec esi
mov dword [ebp - 0x24], eax
push 1
push 0
push esi
jmp 0x58161288
cmp byte [ebp - 1], 4
jne 0x58160b0c
mov edx, dword [ebp - 0x14]
cmp edx, dword [eax + 0x8c]
jbe 0x58160b0c
lea esi, [edx - 1]
jmp 0x58161266
cmp byte [ebp - 1], 4
jne 0x58160b0c
cmp ecx, dword [eax + 0x7c]
je 0x58160b0c
mov edx, dword [ebp - 0x14]
lea esi, [ecx + 1]
test byte [ebp - 0x28], 0x80
je 0x58160b0c
sub ecx, edx
push 5
push ecx
push esi
push edx
call fcn.5815c2b5
add esp, 0x10
dec esi
mov dword [ebp - 0x24], eax
push 1
push esi
push 0
call fcn.58164901
add esp, 0xc
jmp 0x58160b0c
push 0
push 0x1c5
jmp 0x581612a5
push 0
push 0x1c6
push dword [eax + 0x70]
jmp 0x581612fb
cmp dword [ebp - 0x1c], 0
jne 0x58160b0c
push 2
push 0x1c5
push dword [eax + 0x70]
jmp 0x58161309
cmp dword [ebp - 0x1c], 0
jne 0x58160b0c
push 2
push 0x1c6
push dword [eax + 0x70]
jmp 0x58161348
push 1
push 0x1c5
push 0xffffffffffffffff
jmp 0x581612fb
push 0xffffffffffffffff
push 2
call fcn.5816340c
mov eax, dword [0x581b41c4]
pop ecx
pop ecx
push 1
push 0x1c6
push dword [eax + 0x78]
push dword [eax + 0x1c]
jmp 0x5816134b
push 0
push 0x1c5
push 0
push 0xffffffffffffffff
jmp 0x5816134b
push 0xffffffffffffffff
push 2
call fcn.5816340c
mov eax, dword [0x581b41c4]
pop ecx
pop ecx
mov esi, dword [eax + 0x78]
dec esi
je 0x5816133b
mov eax, dword [0x581b41c4]
add eax, 0x70
push eax
push 0
push esi
call fcn.5815d497
add esp, 0xc
test eax, eax
je 0x58161320
mov eax, dword [0x581b41c4]
push 0
push 0x1c6
push esi
push dword [eax + 0x24]
call fcn.58165e50
jmp 0x58160b09
xor ecx, ecx
cmp edi, 0xa4
mov edx, dword [ebp - 0x28]
setne cl
inc ecx
inc ecx
mov esi, ecx
test edx, 0x20000
je 0x58160b38
cmp dword [eax + 0x70], 0xffffffff
je 0x58160b38
push 0
call fcn.58164664
test eax, eax
pop ecx
je 0x58160b38
mov eax, dword [0x581b41c4]
add eax, 0x1c
push eax
call fcn.5815dfa1
test eax, eax
pop ecx
je 0x581613c9
xor edi, edi
push edi
push edi
push esi
call fcn.58162c3c
mov eax, dword [0x581b41c4]
add esp, 0xc
push edi
push edi
push 0x87
push dword [eax + 0x70]
push dword [eax + 0x20]
call fcn.58163f4f
add esp, 0x14
jmp 0x581613f9
cmp esi, 3
push 2
jne 0x581613e2
mov eax, dword [0x581b41c4]
push 0x1c6
push dword [eax + 0x70]
push dword [eax + 0x28]
jmp 0x581613f1
mov eax, dword [0x581b41c4]
push 0x1c5
push dword [eax + 0x70]
push 0xffffffffffffffff
call fcn.58165e50
add esp, 0x10
push 0
push 0
jmp 0x58160b00
xor ebx, ebx
cmp edi, ecx
setne bl
inc ebx
inc ebx
mov edi, ebx
mov ebx, dword [ebp - 0x1c]
test ebx, ebx
je 0x5816141c
test esi, esi
je 0x58160a79
cmp byte [ebp - 1], 4
je 0x5816142c
cmp byte [ebp - 1], 1
jne 0x58160a79
test dh, 0x80
je 0x58160b38
call fcn.58165371
test eax, eax
je 0x58161455
push 1
push 0
push edi
call fcn.58162c3c
mov eax, dword [0x581b41c4]
add esp, 0xc
mov ecx, dword [eax + 0x74]
jmp 0x5816146b
mov eax, dword [0x581b41c4]
cmp edi, 3
jne 0x58161465
mov ecx, dword [eax + 0x7c]
dec ecx
jmp 0x5816146b
mov ecx, dword [eax + 0x88]
mov edx, dword [eax + 0x70]
cmp ecx, edx
jae 0x5816148a
mov dword [ebp - 0x14], ecx
mov ecx, dword [eax + 0x70]
inc ecx
mov dword [ebp - 0xc], ecx
mov cl, byte [ebp - 7]
and cl, 0xfb
or cl, 8
mov byte [ebp - 7], cl
jmp 0x581614a4
inc ecx
mov dword [ebp - 0x14], edx
mov dword [ebp - 0xc], ecx
mov cl, byte [ebp - 7]
and cl, 0xf7
mov dword [ebp - 0x20], 1
or cl, 4
mov byte [ebp - 7], cl
cmp byte [ebp - 8], 4
jne 0x58161077
xor esi, esi
mov byte [ebp - 8], 4
cmp dword [ebp - 0x20], esi
mov dword [ebp - 0x18], esi
mov eax, dword [eax + 0x28]
mov dword [ebp - 0x10], eax
je 0x581614c8
mov eax, dword [ebp - 0xc]
dec eax
jmp 0x581614cb
mov eax, dword [ebp - 0x14]
push 1
push eax
push esi
call fcn.58164901
add esp, 0xc
cmp ebx, esi
je 0x581614e5
test byte [ebp - 1], 0x20
je 0x581614e5
push 0x10
jmp 0x581614e7
push 4
pop eax
jmp 0x581610b4
push 0xffffffffffffffff
push 2
call fcn.5816340c
mov eax, dword [0x581b41c4]
pop ecx
pop ecx
mov ecx, dword [eax + 0x88]
cmp dword [eax + 0x78], ecx
jbe 0x58160b0c
mov dword [ebp - 0x14], ecx
mov ecx, dword [eax + 0x78]
mov dword [ebp - 0xc], ecx
mov byte [ebp - 7], 5
jmp 0x581614ae
mov ecx, 0x14b
cmp edi, ecx
jb case.0x58160b7c.196
cmp edi, 0x14c
jbe 0x58161402
cmp edi, 0x14e
jbe 0x5816154d
cmp edi, 0x400
jne case.0x58160b7c.196
jmp 0x58160b0c
xor ecx, ecx
cmp edi, 0x14d
setne cl
inc ecx
inc ecx
cmp byte [ebp - 1], 2
mov esi, ecx
je 0x5816156c
cmp byte [ebp - 1], 1
jne 0x58161367
test edx, 0x20000
je 0x58160b38
add eax, 0x1c
push eax
call fcn.5815dfa1
test eax, eax
pop ecx
je 0x5816159d
push 0
push 0
push esi
call fcn.58162c3c
mov eax, dword [0x581b41c4]
add esp, 0xc
mov ecx, dword [eax + 0x20]
jmp 0x581615b0
mov eax, dword [0x581b41c4]
cmp esi, 3
jne 0x581615ad
mov ecx, dword [eax + 0x28]
dec ecx
jmp 0x581615b0
mov ecx, dword [eax + 0x34]
mov edx, dword [eax + 0x1c]
cmp ecx, edx
jae 0x581615cf
mov dl, byte [ebp - 7]
mov dword [ebp - 0x18], ecx
mov ecx, dword [eax + 0x1c]
and dl, 0xfe
inc ecx
or dl, 2
mov dword [ebp - 0x10], ecx
mov byte [ebp - 7], dl
jmp 0x581615e9
mov dword [ebp - 0x18], edx
mov dl, byte [ebp - 7]
and dl, 0xfd
inc ecx
or dl, 1
mov dword [ebp - 0x10], ecx
mov byte [ebp - 7], dl
mov dword [ebp - 0x20], 1
cmp byte [ebp - 1], 2
jne 0x5816107a
xor edx, edx
mov byte [ebp - 8], 2
cmp dword [ebp - 0x20], edx
mov dword [ebp - 0x14], edx
mov eax, dword [eax + 0x7c]
mov dword [ebp - 0xc], eax
je 0x5816160a
dec ecx
jmp 0x5816160d
mov ecx, dword [ebp - 0x18]
push 1
push edx
push ecx
call fcn.58164901
add esp, 0xc
push 4
jmp 0x581610b5