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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x12c
mov ebx, dword [esp + 0x14c]
mov esi, dword [esp + 0x148]
mov edi, dword [esp + 0x140]
test edi, edi
jne 0x5d71c3
cmp dword [esp + 0x144], 0
jne 0x5d71c3
test esi, esi
jne 0x5d71c3
cmp ebx, 0xfffffc19
jne 0x5d71c3
cmp dword [esp + 0x150], 0xfffffc19
jne 0x5d71c3
sub esp, 0xc
xor ecx, ecx
xor edx, edx
push 0
push 0
push 0
push 0
push 0
call fcn.005d84c0
add esp, 0x20
mov ebp, eax
jmp 0x5d71d5
mov ebp, 0xfffffffd
test dword [esp + 0x154], 0xe20f5a6f
je 0x5d71e2
mov eax, ebp
add esp, 0x12c
pop esi
pop edi
pop ebx
pop ebp
ret
test edi, edi
mov ebp, 0xfffffffe
je 0x5d71d5
test esi, esi
je 0x5d71d5
mov edx, dword [esp + 0x15c]
cmp dword [esp + 0x158], 0
jne 0x5d7209
mov ebp, 0xfffffffe
test edx, edx
jg 0x5d71d5
test edx, edx
js 0x5d7304
test ebx, ebx
js 0x5d730e
mov eax, dword [esp + 0x150]
test eax, eax
mov ebp, 0xffffffe8
js 0x5d71d5
cmp eax, ebx
jg 0x5d71d5
mov eax, dword [edi]
cmp eax, 0x50435245
jne 0x5d7318
mov ebp, 0xffffffe4
test byte [edi + 0xc], 2
je 0x5d71d5
mov eax, 0x800
and eax, dword [edi + 8]
mov dword [esp + 0x30], eax
mov ebp, eax
shr ebp, 0xb
mov eax, dword [esp + 0x154]
mov ecx, eax
shr eax, 0xf
and eax, 1
test ecx, 0x8000000
mov ecx, 2
cmove ecx, eax
mov dword [esp + 0x3c], ebp
mov dword [esp + 0xbc], ebp
mov dword [esp + 0xf8], ecx
mov eax, dword [esp + 0x150]
lea eax, [esi + eax*2]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x154]
test ah, 0x20
jne 0x5d7361
cmp dword [esp + 0x30], 0
je 0x5d7361
sub esp, 4
lea eax, [esp + 0x12c]
push eax
push ebx
push esi
call fcn.00626570
add esp, 0x10
test eax, eax
je 0x5d732f
cmp dword [esp + 0x15c], 2
jl 0x5d72e4
mov ecx, dword [esp + 0x128]
mov edx, dword [esp + 0x158]
mov dword [edx], ecx
mov dword [edx + 4], eax
cmp dword [esp + 0xf8], 1
mov ebp, 0xffffffe7
mov ecx, 0xfffffff6
cmovle ebp, ecx
cmp eax, 2
cmovge ebp, ecx
jmp 0x5d71d5
mov ebp, 0xfffffff1
jmp 0x5d71d5
mov ebp, 0xffffffe0
jmp 0x5d71d5
cmp eax, 0x45524350
mov eax, 0xffffffe3
mov ebp, 0xfffffffc
cmove ebp, eax
jmp 0x5d71d5
mov eax, dword [esp + 0x150]
test eax, eax
mov edx, dword [esp + 0x15c]
jle 0x5d7361
cmp eax, ebx
jge 0x5d7361
mov eax, dword [esp + 0x58]
movzx eax, word [eax]
and eax, 0xfc00
mov ebp, 0xfffffff5
cmp eax, 0xdc00
je 0x5d71d5
mov ecx, dword [esp + 0x144]
test ecx, ecx
je 0x5d73c1
mov eax, dword [ecx]
and eax, 0x48
cmp eax, 0x40
jne 0x5d73c1
test dword [esp + 0x154], 0xe7ff5a7f
jne 0x5d73c1
mov eax, dword [ecx + 0x1c]
test eax, eax
mov eax, dword [esp + 0x158]
je 0x5d73c1
sub esp, 4
push edx
push eax
push dword [esp + 0x160]
push dword [esp + 0x160]
push ebx
push esi
push ecx
call fcn.005fce20
mov ecx, dword [esp + 0x164]
add esp, 0x20
mov ebp, eax
cmp ebp, 0xffffffe1
jne 0x5d71d5
test ecx, ecx
movzx eax, word [edi + 0x22]
lea eax, [edi + eax*2]
mov dword [esp + 0xc], eax
mov dword [esp + 0x9c], eax
movzx eax, word [edi + 0x26]
mov dword [esp + 8], eax
mov dword [esp + 0x8c], eax
movzx edx, word [edi + 0x24]
mov dword [esp + 0x90], edx
mov dword [esp + 0x70], 0x989680
mov dword [esp + 0x74], 0x989680
mov dword [esp + 0x118], 0
mov eax, dword [edi + 0x30]
mov dword [esp + 0x10], eax
je 0x5d7452
mov eax, dword [ecx]
mov dword [esp + 0x2c], 0
test al, 1
je 0x5d7428
mov ebp, dword [ecx + 4]
mov dword [esp + 0x2c], ebp
mov ebp, 0x989680
test al, 2
je 0x5d7438
mov ebp, dword [ecx + 8]
mov dword [esp + 0x70], ebp
mov dword [esp + 0x14], 0x989680
test al, 0x10
jne 0x5d746d
test al, 4
jne 0x5d7484
test al, 8
jne 0x5d74a0
mov ecx, dword [esp + 0x10]
jmp 0x5d74a3
mov dword [esp + 0x2c], 0
mov dword [esp + 0x14], 0x989680
mov ebp, 0x989680
mov ecx, dword [esp + 0x10]
jmp 0x5d74a3
mov dword [esp + 0x1c], ebp
mov ebp, dword [ecx + 0x14]
mov dword [esp + 0x14], ebp
mov dword [esp + 0x74], ebp
mov ebp, dword [esp + 0x1c]
test al, 4
je 0x5d7448
mov ecx, dword [esp + 0x144]
mov ecx, dword [ecx + 0xc]
mov dword [esp + 0x118], ecx
mov ecx, dword [esp + 0x144]
test al, 8
je 0x5d744c
mov ecx, dword [ecx + 0x10]
mov eax, dword [edi + 0xc]
mov dword [esp + 0x38], eax
test ah, 0x20
je 0x5d74ba
mov eax, dword [edi + 0x10]
cmp eax, ebp
jae 0x5d74ba
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x38]
test ah, 0x40
je 0x5d74d0
mov eax, dword [edi + 0x14]
cmp eax, dword [esp + 0x14]
jae 0x5d74d0
mov dword [esp + 0x74], eax
test ecx, ecx
mov eax, 0x7084f0
cmovne eax, ecx
imul edx, dword [esp + 8]
mov ebp, dword [edi + 8]
mov ecx, dword [esp + 0xc]
lea ecx, [ecx + edx*2]
mov dword [esp + 0xe0], ecx
mov dword [esp + 0xe4], esi
mov ecx, dword [esp + 0x150]
mov dword [esp + 0x104], ecx
lea ecx, [esi + ebx*2]
mov dword [esp + 0x14], ecx
mov dword [esp + 0xe8], ecx
mov ecx, ebp
shr ecx, 5
and ecx, 1
mov dword [esp + 0xc8], ecx
mov ecx, ebp
shr ecx, 0x1d
and ecx, 1
mov dword [esp + 0xc4], ecx
mov ecx, ebp
shr ecx, 0x19
and ecx, 1
mov dword [esp + 0xc0], ecx
mov dword [esp + 0x98], 0
mov edx, dword [esp + 0x154]
mov ecx, edx
shr ecx, 7
and ecx, 1
mov dword [esp + 0xb4], ecx
mov ecx, edx
shr ecx, 8
and ecx, 1
mov dword [esp + 0xb8], ecx
mov ecx, edx
shr ecx, 0xa
and ecx, 1
mov dword [esp + 0xcc], ecx
mov ecx, edx
shr ecx, 0x1c
and ecx, 1
mov dword [esp + 0xd0], ecx
mov dword [esp + 0xd4], 0
mov dword [esp + 0x120], 0
mov dword [esp + 0x11c], 0
mov dword [esp + 0x114], 0
mov ecx, dword [esp + 0x38]
shr ecx, 0xc
and ecx, 1
mov dword [esp + 0xdc], ecx
mov dword [esp + 0xa8], eax
lea ecx, [eax + 0x100]
mov dword [esp + 0xac], ecx
add eax, 0x340
mov dword [esp + 0xb0], eax
mov ecx, edx
and ecx, 0x1800000
cmp ecx, 0x1000000
mov dword [esp + 0x10], ebp
je 0x5d7631
cmp ecx, 0x800000
mov eax, dword [esp + 0x15c]
je 0x5d763c
mov ebp, 0xffffffe9
test ecx, ecx
jne 0x5d71d5
mov ebp, dword [esp + 0x10]
test ebp, 0x1800000
je 0x5d7643
mov ecx, ebp
shr ecx, 0x17
and ecx, 1
jmp 0x5d7645
xor ecx, ecx
mov eax, dword [esp + 0x15c]
jmp 0x5d7645
mov ecx, 1
jmp 0x5d7645
xor ecx, ecx
mov dword [esp + 0xd8], ecx
mov ecx, dword [esp + 0x154]
test ecx, 0x700000
mov edx, ecx
cmove edx, ebp
shr edx, 0x14
mov ecx, edx
and cl, 7
cmp cl, 5
ja case.default.0x5d7672
mov cx, 0xa
and edx, 7
jmp dword [edx*4 + 0x5d8494]
mov cx, 0xd
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], 1
mov word [esp + 0xa0], cx
jmp 0x5d76e2
mov ebp, 0xffffffe9
jmp 0x5d71d5
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], 2
mov dword [esp + 0xa0], 0xa000d
jmp 0x5d76e2
mov dword [esp + 0x84], 1
jmp 0x5d76e2
mov dword [esp + 0x84], 2
mov ecx, dword [esp + 0x38]
test ch, 2
je 0x5d76ff
mov ecx, dword [esp + 0xf8]
mov ebp, 0xfffffff3
test ecx, ecx
jne 0x5d71d5
mov ecx, 0xaaaaaaab
mul ecx
mov ecx, edx
shr ecx, 1
lea eax, [ecx + ecx*2]
mov dword [esp + 0x64], eax
lea eax, [eax + eax]
mov edx, 0x55555556
imul edx
mov dword [esp + 0x34], edx
movzx ebp, word [edi + 0x20]
test ebp, ebp
je 0x5d7767
cmp ecx, ebp
ja 0x5d7767
lea eax, [ebp + ebp*2]
lea eax, [eax*4 + 0xc]
sub esp, 0xc
push eax
call dword [0x6f4478]
add esp, 0x10
mov ecx, eax
mov dword [esp + 0x78], ecx
test ecx, ecx
je 0x5d793f
lea ebp, [ebp + ebp*2 + 3]
lea eax, [esp + 0x78]
mov dword [esp + 0x50], eax
mov dword [esp + 0x40], 1
jmp 0x5d7786
lea eax, [esp + 0x78]
mov dword [esp + 0x50], eax
mov ecx, dword [esp + 0x158]
mov dword [esp + 0x78], ecx
mov dword [esp + 0x40], 0
mov ebp, dword [esp + 0x64]
mov eax, dword [esp + 0x10]
or eax, dword [esp + 0x154]
and eax, 0x10
mov dword [esp + 0x48], eax
mov dword [esp + 0x7c], ebp
lea eax, [ebp + ebp]
mov edx, 0x55555556
imul edx
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x80], eax
mov dword [esp + 0x100], 0
test ecx, ecx
mov edx, dword [esp + 0x15c]
je 0x5d7815
movzx edx, word [edi + 0x1e]
lea eax, [ecx + ebp*4 - 4]
sub ebp, edx
lea edx, [ecx + ebp*4]
mov dword [esp + 0xc], edx
lea edx, [ecx + 8]
cmp ebp, 2
cmovge edx, dword [esp + 0xc]
cmp eax, edx
jb 0x5d77f8
mov dword [eax], 0xffffffff
add eax, 0xfffffffc
cmp eax, edx
jae 0x5d77eb
mov edx, dword [esp + 0x15c]
test edx, edx
jle 0x5d7815
mov dword [ecx], 0xffffffff
cmp edx, 1
je 0x5d7815
mov dword [ecx + 4], 0xffffffff
cmp dword [esp + 0x48], 0
mov eax, dword [edi + 0xc]
je 0x5d7874
mov dword [esp + 0x24], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
mov ebp, dword [esp + 0x10]
mov ecx, dword [esp + 0x34]
shr ecx, 0x1f
test al, 0x40
jne 0x5d78eb
mov al, 1
mov dword [esp + 0x44], eax
mov dword [esp + 0x60], 0
mov dword [esp + 0x28], 0
mov eax, dword [esp + 0x150]
jmp 0x5d79c9
test al, 0x10
jne 0x5d7916
mov dword [esp + 0x24], 0
cmp dword [esp + 0x2c], 0
je 0x5d7827
mov ecx, dword [esp + 0x38]
and ecx, 0x100
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
mov ebp, dword [esp + 0x10]
jne 0x5d7843
mov ebp, dword [esp + 0x2c]
mov ecx, dword [ebp + 4]
and ecx, 1
neg ecx
lea ebp, [ebp + 8]
mov dword [esp + 0x18], ebp
mov ebp, dword [esp + 0x10]
and dword [esp + 0x18], ecx
mov dword [esp + 0x24], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
jmp 0x5d7843
mov dword [esp + 0xc], eax
mov ax, word [edi + 0x1a]
cmp byte [esp + 0xc], 0
mov dword [esp + 0x60], eax
js 0x5d7949
mov dword [esp + 0x44], 0
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x150]
jmp 0x5d79c9
mov bp, word [edi + 0x18]
test al, 0x20
mov dword [esp + 0x1c], ebp
jne 0x5d8325
mov dword [esp + 0x20], 1
mov dword [esp + 0x18], 0
mov dword [esp + 0x24], ebp
jmp 0x5d783f
mov ebp, 0xfffffffa
jmp 0x5d71d5
movzx edx, ax
mov ebp, edx
cmp edx, 0xff
mov dword [esp + 0x28], eax
ja 0x5d7969
mov edx, dword [esp + 0xac]
movzx eax, byte [edx + ebp]
mov dword [esp + 0x28], eax
mov dword [esp + 0x44], 0
cmp dword [esp + 0x30], 0
je 0x5d79b7
cmp ebp, 0x80
jb 0x5d79b7
mov eax, ebp
mov edx, eax
and edx, 0xff80
shr edx, 7
movzx edx, byte [edx + 0x6f7ff0]
shl edx, 7
and ebp, 0x7f
or ebp, edx
movzx edx, word [ebp + ebp + 0x6fa1f0]
add eax, dword [edx*8 + 0x6f6974]
mov dword [esp + 0x44], 0
mov dword [esp + 0x28], eax
mov edx, dword [esp + 0x15c]
mov eax, dword [esp + 0x150]
mov ebp, dword [esp + 0x10]
lea eax, [esi + eax*2 - 2]
mov dword [esp + 0x68], eax
add dword [esp + 0x34], ecx
mov dword [esp + 0x5c], 0
mov eax, dword [esp + 0x58]
mov dword [esp + 8], eax
mov dword [esp + 0x4c], 0
jmp 0x5d7c6a
add eax, 2
cmp eax, dword [esp + 0x14]
jae 0x5d7a00
cmp word [eax], bp
jne 0x5d79f2
cmp eax, dword [esp + 0x14]
mov dword [esp + 0x68], eax
jae 0x5d83cb
mov ecx, dword [esp + 8]
mov dword [esp + 0xec], ecx
mov dword [esp + 0xf4], ecx
mov dword [esp + 0x6c], 0
mov dword [esp + 0x108], 0
mov dword [esp + 0xfc], 0
mov dword [esp + 0x94], 0
mov edx, dword [esp + 0xe0]
sub esp, 0xc
mov ebp, ecx
push 0
push 0
lea eax, [esp + 0x80]
push eax
push 2
push ebp
call fcn.005d84c0
add esp, 0x20
mov ebp, eax
cmp dword [esp + 0xd4], 0
setne al
mov edx, dword [esp + 0x5c]
test edx, edx
sete cl
and cl, al
cmovne edx, dword [esp + 0xf4]
mov dword [esp + 0x5c], edx
test cl, cl
mov eax, dword [esp + 0x4c]
cmovne eax, dword [esp + 8]
mov dword [esp + 0x4c], eax
lea eax, [ebp + 0x3e4]
cmp eax, 4
ja case.default.0x5d7ab1
mov edx, dword [esp + 0x15c]
jmp dword [eax*4 + 0x5d84ac]
mov ebp, dword [esp + 0xec]
cmp ebp, dword [esp + 8]
jbe case.0x5d7ab1.995
jmp 0x5d7b2c
test ebp, ebp
mov edx, dword [esp + 0x15c]
jne 0x5d81c9
mov eax, dword [esp + 8]
lea ebp, [eax + 2]
cmp dword [esp + 0x30], 0
mov dword [esp + 0x98], 0
je 0x5d7b2c
cmp ebp, dword [esp + 0x14]
jae 0x5d7b2c
mov ecx, eax
movzx eax, word [ecx + 2]
and eax, 0xfc00
lea ecx, [ecx + 4]
cmp eax, 0xdc00
cmove ebp, ecx
test dword [esp + 0x10], 0x40000
jne 0x5d7b3a
jmp 0x5d7bee
mov eax, dword [esp + 0x94]
mov dword [esp + 0x98], eax
mov ebp, dword [esp + 8]
test dword [esp + 0x10], 0x40000
je 0x5d7bee
mov ecx, dword [esp + 0x84]
mov eax, dword [esp + 0xe8]
test ecx, ecx
je 0x5d7b8f
cmp dword [esp + 8], eax
jae 0x5d7bee
sub esp, 0xc
push dword [esp + 0x48]
lea edx, [esp + 0x98]
push edx
push eax
push ecx
push dword [esp + 0x24]
call fcn.00626240
add esp, 0x20
or eax, dword [esp + 0x48]
jne 0x5d83cb
cmp ebp, dword [esp + 0x14]
mov edx, dword [esp + 0x15c]
jbe 0x5d7c03
jmp case.0x5d7ab1.996
mov ecx, dword [esp + 0x88]
lea edx, [ecx + ecx]
sub eax, edx
mov edx, dword [esp + 0x15c]
cmp dword [esp + 8], eax
ja 0x5d7bee
mov eax, dword [esp + 8]
movzx eax, word [eax]
cmp ax, word [esp + 0xa0]
jne 0x5d7bee
cmp ecx, 1
je case.0x5d7ab1.996
cmp dword [esp + 0x48], 0
jne case.0x5d7ab1.996
cmp ebp, dword [esp + 0x14]
ja case.0x5d7ab1.996
movzx eax, word [esp + 0xa2]
mov ecx, dword [esp + 8]
cmp word [ecx + 2], ax
jne 0x5d7c03
jmp case.0x5d7ab1.996
cmp dword [esp + 0x48], 0
jne case.0x5d7ab1.996
cmp ebp, dword [esp + 0x14]
ja case.0x5d7ab1.996
cmp ebp, dword [esp + 0x58]
jbe 0x5d7c57
cmp ebp, dword [esp + 0x14]
jae 0x5d7c57
movzx eax, word [ebp - 2]
cmp eax, 0xd
jne 0x5d7c57
movzx eax, word [ebp]
cmp eax, 0xa
jne 0x5d7c57
test byte [edi + 0xd], 8
jne 0x5d7c57
mov eax, dword [esp + 0x84]
dec eax
lea ecx, [ebp + 2]
cmp dword [esp + 0x88], 2
cmove ebp, ecx
cmp eax, 2
cmovb ebp, ecx
jmp 0x5d7c57
mov eax, ecx
jmp 0x5d8106
mov eax, dword [esp + 8]
mov edx, ebp
jmp 0x5d8106
mov dword [esp + 0x11c], 0
mov dword [esp + 8], ebp
mov ebp, dword [esp + 0x10]
test ebp, 0x40000
mov ecx, dword [esp + 0x14]
je 0x5d7e07
cmp dword [esp + 0x30], 0
mov eax, dword [esp + 0xe8]
je 0x5d7d45
mov ecx, dword [esp + 8]
cmp ecx, eax
jae 0x5d7e07
mov ebp, dword [esp + 8]
mov ecx, dword [esp + 0x84]
test ecx, ecx
je 0x5d7cd1
sub esp, 0xc
push dword [esp + 0x48]
lea edx, [esp + 0x98]
push edx
push eax
push ecx
push ebp
call fcn.00626240
add esp, 0x20
test eax, eax
mov edx, dword [esp + 0x15c]
je 0x5d7d11
jmp 0x5d7df8
mov ecx, dword [esp + 0x88]
lea edx, [ecx + ecx]
sub eax, edx
cmp ebp, eax
mov edx, dword [esp + 0x15c]
ja 0x5d7d11
movzx eax, word [ebp]
cmp ax, word [esp + 0xa0]
jne 0x5d7d11
cmp ecx, 1
je 0x5d7df8
movzx eax, word [ebp + 2]
cmp ax, word [esp + 0xa2]
je 0x5d7df8
lea ecx, [ebp + 2]
cmp ecx, dword [esp + 0x14]
jae 0x5d7d2f
movzx eax, word [ebp + 2]
and eax, 0xfc00
cmp eax, 0xdc00
jne 0x5d7d2f
add ebp, 4
mov ecx, ebp
mov eax, dword [esp + 0xe8]
cmp ecx, eax
mov ebp, ecx
jb 0x5d7c9c
jmp 0x5d7e07
mov ecx, dword [esp + 8]
cmp ecx, eax
jae 0x5d7e07
mov ecx, dword [esp + 8]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x84]
test ecx, ecx
je 0x5d7d99
sub esp, 0xc
push dword [esp + 0x48]
lea edx, [esp + 0x98]
push edx
push eax
push ecx
push dword [esp + 0x28]
call fcn.00626240
add esp, 0x20
test eax, eax
jne 0x5d7dfc
mov eax, dword [esp + 0xe8]
mov edx, dword [esp + 0x15c]
mov ecx, dword [esp + 0xc]
jmp 0x5d7deb
mov ecx, dword [esp + 0x88]
mov dword [esp + 0x54], ecx
lea edx, [ecx + ecx]
mov ebp, eax
sub ebp, edx
mov ecx, dword [esp + 0xc]
cmp ecx, ebp
jbe 0x5d7dbc
mov edx, dword [esp + 0x15c]
jmp 0x5d7deb
movzx edx, word [ecx]
cmp dx, word [esp + 0xa0]
jne 0x5d7d8c
cmp dword [esp + 0x54], 1
mov edx, dword [esp + 0x15c]
je 0x5d7e03
mov ebp, dword [esp + 0xc]
movzx ecx, word [ebp + 2]
cmp cx, word [esp + 0xa2]
mov ecx, ebp
je 0x5d7e07
add ecx, 2
cmp ecx, eax
jb 0x5d7d55
jmp 0x5d7e07
mov ecx, ebp
jmp 0x5d7e07
mov edx, dword [esp + 0x15c]
mov ecx, dword [esp + 0xc]
mov eax, dword [edi + 8]
or eax, dword [esp + 0x154]
test eax, 0x4000000
jne 0x5d8102
cmp dword [esp + 0x20], 0
mov edx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x24]
mov eax, dword [esp + 8]
mov dword [esp + 0xc], ecx
je 0x5d7e64
mov dword [esp + 0x1c], edx
cmp dx, bp
jne 0x5d7ed5
cmp eax, ecx
mov edx, dword [esp + 0x15c]
jae 0x5d8106
cmp word [eax], bp
je 0x5d8106
add eax, 2
cmp eax, ecx
jb 0x5d7e4f
jmp 0x5d8106
mov eax, dword [esp + 0x38]
test ah, 1
jne 0x5d7f11
cmp dword [esp + 0x18], 0
mov edx, dword [esp + 0x15c]
je 0x5d8102
mov eax, dword [esp + 8]
cmp eax, ecx
jae 0x5d8106
mov ebp, eax
movzx ecx, word [eax]
cmp ecx, 0xff
jb 0x5d7ea1
mov ecx, 0xff
mov eax, ecx
shr eax, 3
mov edx, dword [esp + 0x18]
movzx edx, byte [edx + eax]
and cl, 7
mov eax, 1
shl eax, cl
and eax, edx
jne 0x5d7ebf
add ebp, 2
mov ecx, dword [esp + 0xc]
test eax, eax
mov edx, dword [esp + 0x15c]
mov eax, ebp
je 0x5d7e87
jmp 0x5d8106
cmp eax, ecx
mov edx, dword [esp + 0x15c]
jae 0x5d8106
mov ecx, edx
mov edx, eax
movzx eax, word [eax]
cmp ax, word [esp + 0x1c]
je 0x5d8009
cmp ax, bp
je 0x5d8009
mov eax, edx
add eax, 2
cmp eax, dword [esp + 0xc]
mov edx, ecx
jb 0x5d7ee4
jmp 0x5d8106
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0x150]
lea ecx, [eax + ecx*2]
cmp dword [esp + 8], ecx
mov edx, dword [esp + 0x15c]
jbe 0x5d8102
cmp dword [esp + 0x30], 0
je 0x5d8012
mov ecx, dword [esp + 0xc]
cmp dword [esp + 8], ecx
jb 0x5d7f54
jmp 0x5d80c1
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0x84]
test ecx, ecx
je 0x5d7f8a
mov ebp, dword [esp + 8]
cmp ebp, eax
jbe 0x5d7fd2
sub esp, 0xc
push dword [esp + 0x48]
lea edx, [esp + 0x98]
push edx
push eax
push ecx
push ebp
call fcn.006262f0
add esp, 0x20
test eax, eax
je 0x5d7fd2
jmp 0x5d80ba
mov ecx, dword [esp + 0x88]
lea eax, [eax + ecx*2]
mov ebp, dword [esp + 8]
cmp ebp, eax
jb 0x5d7fd2
lea eax, [ecx + ecx]
mov edx, ebp
sub edx, eax
movzx eax, word [edx]
cmp ax, word [esp + 0xa0]
jne 0x5d7fd2
cmp ecx, 1
je 0x5d80ba
neg ecx
mov ebp, dword [esp + 8]
movzx eax, word [ebp + ecx*2 + 2]
cmp ax, word [esp + 0xa2]
je 0x5d80ba
lea eax, [ebp + 2]
mov ecx, dword [esp + 0xc]
cmp eax, ecx
jae 0x5d7ff8
movzx ecx, word [ebp + 2]
and ecx, 0xfc00
cmp ecx, 0xdc00
jne 0x5d7ff4
add ebp, 4
mov eax, ebp
mov ecx, dword [esp + 0xc]
mov dword [esp + 8], eax
cmp eax, ecx
jb 0x5d7f4d
jmp 0x5d80ba
mov eax, edx
mov edx, ecx
jmp 0x5d8106
mov ecx, dword [esp + 0xc]
cmp dword [esp + 8], ecx
jae 0x5d80c1
mov ecx, dword [esp + 8]
lea ebp, [ecx + 2]
jmp 0x5d8033
mov eax, dword [esp + 0xe4]
add ebp, 2
lea ecx, [ebp - 2]
mov edx, dword [esp + 0x84]
test edx, edx
je 0x5d806d
cmp ecx, eax
jbe 0x5d80a2
sub esp, 0xc
push dword [esp + 0x48]
mov dword [esp + 0x64], ebp
lea ebp, [esp + 0x98]
push ebp
mov ebp, dword [esp + 0x68]
push eax
push edx
push ecx
call fcn.006262f0
add esp, 0x20
test eax, eax
je 0x5d80a2
jmp 0x5d80b3
mov edx, dword [esp + 0x88]
lea eax, [eax + edx*2]
cmp ecx, eax
jb 0x5d80a2
lea ecx, [edx + edx]
mov eax, ebp
sub eax, ecx
movzx ecx, word [eax - 2]
cmp cx, word [esp + 0xa0]
jne 0x5d80a2
cmp edx, 1
je 0x5d80ba
movzx eax, word [eax]
cmp ax, word [esp + 0xa2]
je 0x5d80ba
add dword [esp + 8], 2
cmp ebp, dword [esp + 0xc]
jb 0x5d8029
jmp 0x5d80ba
add ebp, 0xfffffffe
mov dword [esp + 8], ebp
mov edx, dword [esp + 0x15c]
mov ecx, dword [esp + 8]
movzx eax, word [ecx - 2]
cmp eax, 0xd
jne 0x5d7c45
cmp ecx, dword [esp + 0xc]
jae 0x5d8102
mov ebp, edx
mov eax, dword [esp + 0x84]
dec eax
cmp eax, 1
ja 0x5d7c4c
mov edx, dword [esp + 8]
movzx eax, word [edx]
lea ecx, [edx + 2]
cmp eax, 0xa
mov eax, edx
cmove eax, ecx
jmp 0x5d7c50
mov eax, dword [esp + 8]
mov dword [esp + 8], eax
mov eax, dword [edi + 8]
or eax, dword [esp + 0x154]
and eax, 0x4000000
or eax, dword [esp + 0xf8]
jne 0x5d7a0e
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x5d814b
test byte [eax + 4], 2
je 0x5d814b
mov eax, dword [esp + 0x14]
sub eax, dword [esp + 8]
sar eax, 1
mov ecx, dword [esp + 0x2c]
cmp eax, dword [ecx + 0x28]
jb case.0x5d7ab1.996
cmp byte [esp + 0x44], 0
jne 0x5d7a0e
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 8]
sub eax, ecx
cmp eax, 0x7cf
jg 0x5d7a0e
mov eax, dword [esp + 0x20]
lea eax, [ecx + eax*2]
cmp eax, dword [esp + 0x68]
jbe 0x5d7a0e
mov ebp, dword [esp + 0x60]
cmp bp, word [esp + 0x28]
je 0x5d79f5
cmp eax, dword [esp + 0x14]
jae 0x5d7a00
movzx ecx, word [eax]
cmp cx, word [esp + 0x28]
mov edx, eax
je 0x5d81a4
lea edx, [eax + 2]
cmp cx, bp
cmovne eax, edx
cmp eax, dword [esp + 0x14]
jae 0x5d7a00
cmp cx, bp
je 0x5d7a00
cmp cx, word [esp + 0x28]
jne 0x5d8195
jmp 0x5d7a00
cmp ebp, 1
je 0x5d81da
cmp ebp, 0xfffffc19
jne 0x5d83ad
cmp dword [esp + 0x40], 0
je 0x5d8239
cmp dword [esp + 0x64], 6
jl 0x5d8212
mov eax, dword [esp + 0x158]
lea eax, [eax + 8]
mov ecx, dword [esp + 0x78]
add ecx, 8
mov edx, dword [esp + 0x34]
lea edx, [edx*4 - 8]
sub esp, 4
push edx
push ecx
push eax
call sub.msvcrt.dll_memcpy
add esp, 0x10
mov eax, dword [esp + 0x34]
cmp dword [esp + 0xfc], eax
jle 0x5d8227
or byte [esp + 0x102], 1
sub esp, 0xc
mov eax, dword [esp + 0x5c]
push dword [eax]
call dword [0x6f447c]
add esp, 0x10
mov eax, dword [esp + 0xfc]
mov ecx, eax
shr ecx, 0x1f
add ecx, eax
sar ecx, 1
xor esi, esi
cmp eax, dword [esp + 0x34]
cmovl esi, ecx
test byte [esp + 0x102], 1
cmove esi, ecx
cmp dword [esp + 0x158], 0
je 0x5d82bd
movzx edx, word [edi + 0x1e]
cmp ecx, edx
jg 0x5d82bd
lea ecx, [edx + edx + 2]
mov edx, dword [esp + 0x15c]
cmp ecx, edx
cmovg ecx, edx
cmp eax, ecx
jge 0x5d82bd
mov edx, dword [esp + 0x158]
mov ebx, edx
lea ecx, [ebx + ecx*4]
lea edx, [ebx + eax*4]
lea edi, [ebx + eax*4 + 4]
shl eax, 2
cmp ecx, edi
cmova edi, ecx
sub edi, eax
mov eax, ebx
not eax
lea eax, [edi + eax + 4]
and eax, 0xfffffffc
sub esp, 4
push eax
push 0xff
push edx
call sub.msvcrt.dll_memset
add esp, 0x10
xor ebp, ebp
cmp dword [esp + 0x15c], 2
jl 0x5d82f4
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xec]
sub ecx, eax
sar ecx, 1
mov edx, dword [esp + 0x158]
mov dword [edx], ecx
mov ecx, dword [esp + 0xf0]
sub ecx, eax
sar ecx, 1
mov dword [edx + 4], ecx
mov ebp, esi
cmp dword [esp + 0x144], 0
je 0x5d71d5
mov eax, dword [esp + 0x144]
test byte [eax], 0x20
je 0x5d71d5
mov eax, dword [esp + 0x11c]
mov ecx, dword [esp + 0x144]
jmp 0x5d848a
movzx ecx, bp
cmp ecx, 0xff
mov dword [esp + 0x24], ebp
ja 0x5d8343
mov edx, dword [esp + 0xac]
movzx edx, byte [edx + ecx]
mov dword [esp + 0x24], edx
mov dword [esp + 0x18], 0
cmp dword [esp + 0x30], 0
mov dword [esp + 0x20], 1
je 0x5d83a1
cmp ecx, 0x80
jb 0x5d83a1
mov edx, ecx
and edx, 0xff80
shr edx, 7
movzx edx, byte [edx + 0x6f7ff0]
shl edx, 7
mov ebp, ecx
and ebp, 0x7f
or ebp, edx
movzx edx, word [ebp + ebp + 0x6fa1f0]
add ecx, dword [edx*8 + 0x6f6974]
mov dword [esp + 0x20], 1
mov dword [esp + 0x18], 0
mov dword [esp + 0x24], ecx
mov edx, dword [esp + 0x15c]
jmp 0x5d783f
cmp dword [esp + 0x40], 0
mov ecx, dword [esp + 0x144]
mov eax, dword [esp + 0x158]
mov edx, dword [esp + 0x15c]
jne 0x5d83e9
jmp 0x5d8410
mov edx, dword [esp + 0x15c]
xor ebp, ebp
cmp dword [esp + 0x40], 0
mov ecx, dword [esp + 0x144]
mov eax, dword [esp + 0x158]
je 0x5d841d
sub esp, 0xc
mov eax, dword [esp + 0x5c]
push dword [eax]
call dword [0x6f447c]
mov edx, dword [esp + 0x16c]
mov eax, dword [esp + 0x168]
mov ecx, dword [esp + 0x154]
add esp, 0x10
test ebp, ebp
je 0x5d841d
cmp ebp, 0xfffffff4
jne 0x5d71d5
cmp dword [esp + 0x4c], 0
je 0x5d846d
mov dword [esp + 0x11c], 0
mov ebp, 0xfffffff4
cmp edx, 2
jl 0x5d8472
mov edi, dword [esp + 0x5c]
sub edi, esi
sar edi, 1
mov dword [eax], edi
add ebx, ebx
sar ebx, 1
mov dword [eax + 4], ebx
mov ebp, 0xfffffff4
cmp edx, 2
je 0x5d8472
mov edx, dword [esp + 0x4c]
sub edx, esi
sar edx, 1
mov dword [eax + 8], edx
mov ebp, 0xfffffff4
test ecx, ecx
jne 0x5d847a
jmp 0x5d71d5
mov ebp, 0xffffffff
test ecx, ecx
je 0x5d71d5
test byte [ecx], 0x20
je 0x5d71d5
mov eax, dword [esp + 0x120]
mov ecx, dword [ecx + 0x18]
mov dword [ecx], eax
jmp 0x5d71d5