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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x90
mov eax, dword [ebp + 0xc]
mov edi, dword [ebp + 8]
mov esi, dword [eax + 4]
mov ecx, dword [eax + 8]
lea eax, [esp + 0x48]
push 1
push 0x671af0
mov dword [esp + 0x44], ecx
push ecx
push esi
push eax
call fcn.00595fe0
add esp, 0x14
cmp dword [esp + 0x48], 0
je 0x5743a3
mov ebx, dword [esp + 0x68]
mov dword [esp + 0x20], esi
mov esi, dword [esp + 0x84]
mov eax, dword [esp + 0x7c]
mov ecx, ebx
mov edx, esi
mov dword [esp + 4], esi
mov dword [esp + 8], eax
sub ecx, esi
cmp ecx, eax
jae 0x574873
mov eax, dword [esp + 0x80]
mov dword [esp], ecx
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0x78]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x5c]
mov esi, ecx
mov dword [esp + 0xc], edx
cmp eax, ecx
mov dword [esp + 0x24], eax
cmova esi, eax
cmp dword [esp + 0x6c], 0xffffffff
mov dword [esp + 0x30], esi
mov esi, dword [esp + 0x50]
mov dword [esp + 0x1c], esi
mov esi, dword [esp + 0x54]
mov dword [esp + 0x18], esi
mov esi, dword [esp + 0x60]
mov dword [esp + 0x38], esi
je 0x5743ea
mov esi, ecx
mov eax, dword [esp + 0x70]
sub edx, ecx
neg esi
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], esi
mov esi, dword [esp]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xc]
mov edx, 1
movzx ecx, byte [eax + esi]
xor eax, eax
shld eax, edx, cl
shl edx, cl
test cl, 0x20
mov ecx, 0
cmovne eax, edx
cmovne edx, ecx
and eax, dword [esp + 0x18]
and edx, dword [esp + 0x1c]
or edx, eax
jne 0x5742cc
mov eax, dword [esp + 0x2c]
add eax, esi
cmp eax, dword [esp + 8]
jae 0x574873
mov eax, dword [esp + 0x28]
mov ebx, esi
mov edx, 1
sub esi, dword [esp + 4]
movzx ecx, byte [eax + ebx]
xor eax, eax
shld eax, edx, cl
shl edx, cl
test cl, 0x20
mov ecx, 0
cmovne eax, edx
cmovne edx, ecx
and eax, dword [esp + 0x18]
and edx, dword [esp + 0x1c]
or edx, eax
je 0x574280
mov eax, dword [esp + 4]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov dword [esp], esi
cmp eax, edx
lea edi, [ecx + esi]
cmovb edx, eax
dec edx
nop word cs:[eax + eax]
nop
cmp edx, 0xffffffff
je 0x574333
cmp edx, dword [esp + 4]
jae 0x574772
mov eax, dword [esp]
lea esi, [eax + edx]
cmp esi, dword [esp + 8]
jae 0x5746c3
mov eax, dword [esp + 0x14]
movzx ecx, byte [eax + edx]
lea eax, [edx - 1]
cmp cl, byte [edi + edx]
mov edx, eax
je 0x5742f0
sub ebx, dword [esp + 0x24]
lea ebx, [ebx + eax + 1]
mov eax, dword [esp + 4]
mov dword [esp + 0x10], eax
jmp 0x57438d
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x10]
mov esi, dword [esp]
cmp ecx, eax
cmovbe ecx, eax
nop word cs:[eax + eax]
nop dword [eax]
cmp ecx, eax
je 0x5745d1
cmp dword [esp + 0x30], eax
je 0x5746d7
lea edx, [esi + eax]
cmp edx, dword [esp + 8]
jae 0x574886
mov edx, dword [esp + 0x14]
movzx edx, byte [edx + eax]
cmp dl, byte [edi + eax]
lea eax, [eax + 1]
je 0x574350
mov eax, dword [esp + 0x38]
sub ebx, eax
mov dword [esp + 0x10], eax
mov eax, dword [esp + 4]
mov esi, ebx
mov edi, dword [ebp + 8]
sub esi, eax
cmp esi, dword [esp + 8]
jb 0x574252
jmp 0x574873
cmp byte [esp + 0x56], 0
je 0x5743b2
mov edi, dword [ebp + 8]
jmp 0x574873
mov dword [esp + 0x20], esi
mov esi, dword [esp + 0x50]
movzx ebx, byte [esp + 0x55]
test esi, esi
je 0x57454a
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x78]
cmp esi, ecx
mov dword [esp + 8], ecx
jae 0x57455e
cmp byte [edx + esi], 0xc0
jge 0x574564
jmp 0x574686
lea edx, [eax - 1]
cmp edx, ecx
mov dword [esp + 0x34], edx
jae 0x5746ee
mov eax, ecx
neg eax
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xc]
sub eax, ecx
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x14]
add eax, edx
mov dword [esp + 0x40], eax
mov eax, dword [esp]
mov ecx, dword [esp + 0xc]
mov dword [esp], eax
mov edx, 1
mov esi, 1
movzx ecx, byte [ecx + eax]
xor eax, eax
shld eax, edx, cl
shl esi, cl
test cl, 0x20
mov ecx, 0
cmovne eax, esi
cmovne esi, ecx
and eax, dword [esp + 0x18]
and esi, dword [esp + 0x1c]
or esi, eax
jne 0x5744a7
mov edx, dword [esp]
nop word cs:[eax + eax]
nop dword [eax + eax]
mov eax, dword [esp + 0x10]
add eax, edx
cmp eax, dword [esp + 8]
jae 0x574873
mov eax, dword [esp + 0x44]
mov ebx, edx
mov esi, 1
sub edx, dword [esp + 4]
movzx ecx, byte [eax + ebx]
xor eax, eax
shld eax, esi, cl
shl esi, cl
test cl, 0x20
mov ecx, 0
cmovne eax, esi
cmovne esi, ecx
and eax, dword [esp + 0x18]
and esi, dword [esp + 0x1c]
or esi, eax
je 0x574460
mov dword [esp], edx
mov eax, dword [esp]
mov ecx, dword [esp + 0x34]
mov edi, dword [esp + 0x24]
mov dword [esp + 0x28], ebx
lea esi, [ecx + eax]
mov eax, dword [esp + 0x40]
mov ecx, ebx
nop
sub edi, 1
jb 0x5744ef
cmp esi, dword [esp + 8]
jae 0x5746c3
movzx edx, byte [eax]
mov ebx, dword [esp + 0xc]
dec ecx
dec eax
mov byte [esp + 0x2c], dl
movzx edx, byte [esp + 0x2c]
cmp dl, byte [ebx + esi]
mov ebx, dword [esp + 0x28]
lea esi, [esi - 1]
je 0x5744c0
jmp 0x574530
mov eax, dword [esp]
mov ecx, dword [esp + 0xc]
lea edi, [ecx + eax]
mov ecx, dword [esp + 0x24]
nop dword [eax]
cmp dword [esp + 0x30], ecx
je 0x5745d1
mov eax, dword [esp]
lea esi, [eax + ecx]
cmp esi, dword [esp + 8]
jae 0x574883
mov eax, dword [esp + 0x14]
movzx eax, byte [eax + ecx]
cmp al, byte [edi + ecx]
lea ecx, [ecx + 1]
je 0x574500
sub ebx, dword [esp + 0x38]
mov ecx, ebx
mov eax, ecx
mov edi, dword [ebp + 8]
mov ebx, ecx
sub eax, dword [esp + 4]
cmp eax, dword [esp + 8]
jb 0x574418
jmp 0x574873
test bl, bl
mov ebx, dword [esp + 0x20]
mov dword [esp], 0
jne 0x5745d5
jmp 0x5743aa
jne 0x574686
movzx ecx, byte [edx + esi - 1]
movzx edi, cl
test cl, cl
jns 0x5745ca
mov ecx, edx
movzx edx, byte [edx + esi - 2]
mov dword [esp + 4], ecx
cmp dl, 0xbf
jg 0x5745aa
movzx eax, byte [ecx + esi - 3]
mov dword [esp + 0x14], eax
cmp byte [esp + 0x14], 0xbf
jg 0x5745af
movzx ecx, byte [ecx + esi - 4]
and ecx, 7
shl ecx, 6
mov dword [esp], ecx
mov ecx, dword [esp + 0x14]
and ecx, 0x3f
add ecx, dword [esp]
jmp 0x5745b6
and edx, 0x1f
jmp 0x5745be
mov ecx, dword [esp + 0x14]
and ecx, 0xf
shl ecx, 6
and edx, 0x3f
or edx, ecx
shl edx, 6
and edi, 0x3f
or edi, edx
mov edx, dword [esp + 4]
test bl, bl
je 0x57463c
mov dword [esp], esi
mov ebx, dword [esp + 0x20]
mov eax, dword [esp]
inc eax
jne 0x5745e6
mov esi, dword [esp + 0x3c]
mov edi, dword [ebp + 8]
mov ecx, eax
jmp 0x574617
mov esi, dword [esp + 0x3c]
sub esi, eax
jbe 0x574610
cmp byte [ebx + eax], 0xbf
mov edi, dword [ebp + 8]
mov ecx, eax
jg 0x574617
push 0x671af4
mov eax, dword [esp + 0x40]
push eax
push ecx
push eax
push ebx
call fcn.005a11c0
add esp, 0x14
ud2
mov edi, dword [ebp + 8]
mov ecx, eax
jne 0x5745f9
add ebx, ecx
push esi
push ebx
call fcn.00597cd0
add esp, 8
test al, 1
jne 0x574873
shr eax, 0x10
mov dword [edi], ebx
mov dword [edi + 4], esi
mov word [edi + 8], ax
jmp 0x574879
mov ebx, dword [esp + 0x20]
cmp edi, 0x110000
je 0x5743aa
mov eax, 0xffffffff
cmp edi, 0x80
jb 0x574674
mov eax, 0xfffffffe
cmp edi, 0x800
jb 0x574674
xor eax, eax
cmp edi, 0x10000
setb al
or eax, 0xfffffffc
add eax, esi
je 0x57469d
cmp eax, dword [esp + 8]
jae 0x5746a9
cmp byte [edx + eax], 0xbf
jg 0x5746ab
mov esi, eax
push 0x671968
push esi
push 0
push dword [esp + 0x14]
push edx
call fcn.005a11c0
add esp, 0x14
ud2
mov dword [esp], 0
jmp 0x5745d5
jne 0x574684
cmp byte [edx + eax - 1], 0
mov dword [esp], eax
jns 0x5745d5
cmp byte [edx + eax - 2], 0xbf
jmp 0x5745d5
push 0x671948
push dword [esp + 0xc]
push esi
call fcn.005a0c50
add esp, 0xc
ud2
push 0x671918
push dword [esp + 8]
push dword [esp + 0x38]
call fcn.005a0c50
add esp, 0xc
ud2
cmp dword [esp + 0x24], 0
je 0x574786
mov ecx, dword [esp + 0xc]
mov eax, dword [esp]
mov edx, 1
mov edi, 1
xor esi, esi
movzx ecx, byte [ecx + eax]
xor eax, eax
shld eax, edx, cl
shl edi, cl
test cl, 0x20
cmovne eax, edi
cmovne edi, esi
and eax, dword [esp + 0x18]
and edi, dword [esp + 0x1c]
or edi, eax
jne 0x57476e
mov eax, dword [esp + 4]
add eax, eax
sub ebx, eax
cmp ebx, dword [esp + 8]
mov edi, dword [ebp + 8]
jae 0x574873
mov eax, dword [esp + 0xc]
mov edi, 1
movzx ecx, byte [eax + ebx]
xor eax, eax
shld eax, edx, cl
shl edi, cl
test cl, 0x20
cmovne eax, edi
cmovne edi, esi
sub ebx, dword [esp + 4]
and eax, dword [esp + 0x18]
and edi, dword [esp + 0x1c]
or edi, eax
je 0x574734
mov edx, dword [esp + 0x34]
push 0x671938
push dword [esp + 8]
push edx
call fcn.005a0c50
add esp, 0xc
ud2
mov ecx, dword [esp + 4]
mov eax, ecx
neg eax
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0xc]
sub eax, ecx
mov dword [esp + 0x10], eax
mov eax, dword [esp]
mov ecx, dword [esp + 0xc]
mov dword [esp], eax
mov edx, 1
mov dword [esp + 0x28], ebx
movzx ecx, byte [ecx + eax]
xor eax, eax
shld eax, edx, cl
shl edx, cl
test cl, 0x20
mov ecx, 0
cmovne eax, edx
cmovne edx, ecx
and eax, dword [esp + 0x18]
and edx, dword [esp + 0x1c]
or edx, eax
jne 0x574825
mov edi, dword [ebp + 8]
mov ebx, dword [esp]
mov eax, dword [esp + 0x2c]
add eax, ebx
cmp eax, dword [esp + 8]
jae 0x574873
mov eax, dword [esp + 0x10]
mov esi, ebx
mov edx, 1
sub ebx, dword [esp + 4]
movzx ecx, byte [eax + esi]
xor eax, eax
shld eax, edx, cl
shl edx, cl
test cl, 0x20
mov ecx, 0
cmovne eax, edx
cmovne edx, ecx
and eax, dword [esp + 0x18]
and edx, dword [esp + 0x1c]
or edx, eax
je 0x5747da
mov dword [esp + 0x28], esi
mov dword [esp], ebx
mov ecx, dword [esp + 8]
mov edx, dword [esp]
mov edi, dword [esp + 0xc]
xor eax, eax
sub ecx, edx
lea edi, [edi + edx]
cmovb ecx, eax
cmp dword [esp + 0x30], eax
je 0x5745d1
cmp ecx, eax
je 0x574883
mov edx, dword [esp + 0x14]
movzx edx, byte [edx + eax]
cmp dl, byte [edi + eax]
lea eax, [eax + 1]
je 0x57483a
mov ebx, dword [esp + 0x28]
mov edi, dword [ebp + 8]
sub ebx, dword [esp + 0x38]
mov eax, ebx
sub eax, dword [esp + 4]
cmp eax, dword [esp + 8]
jb 0x57479f
mov dword [edi], 0
mov eax, edi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov esi, dword [esp]
add esi, dword [esp + 0x24]
mov eax, dword [esp + 8]
cmp eax, esi
cmova esi, eax
push 0x671928
push eax
push esi
call fcn.005a0c50
add esp, 0xc
ud2