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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xc0
lea ebx, [esp + 0x78]
mov edx, 0x57ced8
mov ecx, ebx
push 0x12
call fcn.00423f70
add esp, 4
mov esi, dword [esp + 0x78]
mov eax, esi
neg eax
jo 0x422c5b
mov edi, dword [esp + 0x7c]
mov eax, dword [esp + 0x80]
jmp 0x422c62
xor eax, eax
mov edi, 1
push eax
push edi
push ebx
call fcn.004e6b10
add esp, 0xc
cmp dword [esp + 0x7c], 0x55f0
setb bl
or bl, byte [esp + 0x78]
test esi, 0x7fffffff
jne 0x422ca1
test bl, bl
je 0x422cb1
mov esi, dword [ebp + 8]
mov edx, 0x57ceb7
mov ecx, esi
push 0xb
call fcn.00423f70
add esp, 4
jmp 0x4234e4
push 1
push esi
push edi
call fcn.0040cd20
add esp, 0xc
test bl, bl
jne 0x422c88
lea ecx, [esp + 0x6c]
mov edx, 0x57ceb7
push 0xb
call fcn.00423f70
add esp, 4
mov ecx, dword [esp + 0x6c]
mov eax, ecx
neg eax
jno 0x422cdc
mov eax, dword [ebp + 8]
mov dword [eax], 0x80000000
jmp 0x4234e6
mov dword [esp + 0x5c], ecx
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 1
mov dword [esp + 0x18], 0
push 0xb
push 0x57cec2
mov dword [esp + 0x60], ecx
push ecx
mov dword [esp + 0x44], eax
push eax
lea eax, [esp + 0x88]
push eax
call fcn.004e15e0
add esp, 0x14
mov edx, dword [esp + 0xb4]
mov ecx, dword [esp + 0x88]
mov eax, dword [esp + 0x84]
mov esi, dword [esp + 0xa8]
cmp ecx, edx
mov edi, edx
mov dword [esp + 0x24], esi
mov dword [esp + 0x48], eax
cmova edi, ecx
test byte [esp + 0x78], 1
mov dword [esp + 0x68], edi
mov edi, dword [esp + 0xac]
mov dword [esp + 0xc], edi
je 0x423115
mov eax, dword [esp + 0x80]
mov ebx, dword [esp + 0x94]
mov dword [esp + 0x2c], ecx
mov dword [esp + 8], 1
mov dword [esp + 0x28], 0
mov dword [esp + 0x34], edx
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x90]
mov dword [esp + 0x40], eax
mov eax, edx
sub eax, dword [esp + 0x40]
mov dword [esp + 0x60], eax
lea eax, [ecx - 1]
cmp eax, edx
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x9c]
setb byte [esp + 0x33]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 4], eax
lea eax, [edx - 1]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 4]
lea eax, [eax + ecx - 1]
xor ecx, ecx
mov dword [esp + 0x64], eax
nop
mov eax, dword [esp + 0x44]
cmp dword [esp + 0x1c], 0xffffffff
mov dword [esp + 0x20], ecx
lea eax, [ebx + eax]
je 0x422f20
cmp eax, edi
jb 0x422e1a
jmp 0x42313b
add ebx, dword [esp + 0x34]
mov dword [esp + 0x1c], 0
mov eax, dword [esp + 0x44]
add eax, ebx
cmp eax, edi
jae 0x42313b
movzx ecx, byte [esi + eax]
xor eax, eax
mov edx, 1
shld eax, edx, cl
shl edx, cl
test cl, 0x20
mov ecx, 0
cmovne eax, edx
cmovne edx, ecx
and eax, dword [esp + 0x48]
and edx, dword [esp + 0x54]
or edx, eax
je 0x422e00
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x2c]
lea edx, [esi + ebx]
cmp eax, ecx
mov edi, ecx
mov ecx, dword [esp + 0x34]
cmova edi, eax
mov eax, edi
mov dword [esp + 0x3c], edi
cmp edi, ecx
cmova ecx, edi
nop word cs:[eax + eax]
nop
cmp ecx, eax
je 0x422ec0
lea esi, [ebx + eax]
mov edi, ebx
cmp esi, dword [esp + 0xc]
jae 0x423564
mov ebx, dword [esp + 4]
lea esi, [eax + 1]
movzx ebx, byte [ebx + eax]
cmp bl, byte [edx + eax]
mov eax, esi
mov ebx, edi
je 0x422e70
sub ebx, dword [esp + 0x2c]
mov edi, dword [esp + 0xc]
mov dword [esp + 0x1c], 0
add ebx, esi
mov esi, dword [esp + 0x24]
jmp 0x422e0c
mov eax, dword [esp + 0x2c]
mov edi, dword [esp + 0xc]
mov esi, dword [esp + 0x24]
nop dword [eax]
cmp dword [esp + 0x1c], eax
jae 0x422f10
mov ecx, dword [esp + 0x34]
dec eax
cmp eax, ecx
jae 0x42358f
lea ecx, [eax + ebx]
cmp ecx, edi
jae 0x423583
mov edx, dword [esp + 4]
movzx edx, byte [edx + eax]
cmp dl, byte [esi + ecx]
je 0x422ed0
mov eax, dword [esp + 0x60]
add ebx, dword [esp + 0x40]
mov dword [esp + 0x1c], eax
jmp 0x422e0c
mov dword [esp + 0x1c], 0
jmp 0x423018
cmp eax, edi
jb 0x422f42
jmp 0x42313b
add ebx, dword [esp + 0x34]
mov eax, dword [esp + 0x44]
add eax, ebx
cmp eax, edi
jae 0x42313b
movzx ecx, byte [esi + eax]
xor eax, eax
mov edx, 1
shld eax, edx, cl
shl edx, cl
test cl, 0x20
mov ecx, 0
cmovne eax, edx
cmovne edx, ecx
and eax, dword [esp + 0x48]
and edx, dword [esp + 0x54]
or edx, eax
je 0x422f30
mov edx, dword [esp + 0x2c]
mov eax, ebx
lea ecx, [esi + ebx]
mov edi, ebx
neg eax
nop dword [eax]
cmp dword [esp + 0x68], edx
je 0x422fc0
lea esi, [ebx + edx]
cmp esi, dword [esp + 0xc]
jae 0x42356a
mov esi, dword [esp + 4]
dec eax
movzx ebx, byte [esi + edx]
mov esi, dword [esp + 0x24]
cmp bl, byte [ecx + edx]
lea edx, [edx + 1]
mov ebx, edi
je 0x422f80
mov edi, dword [esp + 0xc]
neg eax
mov ebx, eax
jmp 0x422f34
cmp byte [esp + 0x33], 0
je 0x4230f0
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x2c]
add eax, ebx
nop dword [eax]
sub edx, 1
jb 0x423010
cmp eax, dword [esp + 0xc]
jae 0x42359b
movzx ebx, byte [ecx]
dec ecx
cmp bl, byte [esi + eax]
lea eax, [eax - 1]
mov ebx, edi
je 0x422fe0
add ebx, dword [esp + 0x40]
mov edi, dword [esp + 0xc]
jmp 0x422f34
mov dword [esp + 0x1c], 0xffffffff
mov edi, dword [esp + 0x10]
mov edx, ebx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x3c], ebx
sub edx, dword [esp + 0x28]
mov eax, edi
sub eax, ecx
cmp eax, edx
jb 0x42309d
mov dword [esp + 0x50], edi
mov edi, edx
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 8]
add edx, dword [esp + 0x38]
add eax, ecx
push edi
push edx
push eax
mov ebx, ecx
call sub.msvcrt.dll_memcpy
mov ecx, ebx
add esp, 0xc
mov eax, dword [esp + 0x50]
add ecx, edi
mov dword [esp + 0x18], ecx
sub eax, ecx
cmp eax, 0xa
jbe 0x4230cb
mov ebx, dword [esp + 0x3c]
mov eax, dword [esp + 8]
mov edi, dword [esp + 0xc]
add ebx, dword [esp + 0x34]
mov dword [eax + ecx + 7], 0x20313120
mov dword [eax + ecx + 4], 0x2073776f
mov dword [eax + ecx], 0x646e6957
add ecx, 0xb
mov dword [esp + 0x18], ecx
mov dword [esp + 0x28], ebx
jmp 0x422de0
push 1
push 1
mov edi, edx
push edx
push ecx
lea eax, [esp + 0x20]
push eax
call fcn.004183d0
add esp, 0x14
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x50], eax
mov dword [esp + 8], edx
jmp 0x423038
push 1
push 1
push 0xb
push ecx
lea eax, [esp + 0x20]
push eax
call fcn.004183d0
add esp, 0x14
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 8], eax
jmp 0x423066
cmp dword [esp + 0x2c], 0
mov dword [esp + 0x1c], 0xffffffff
je 0x423018
push 0x57cc40
push dword [esp + 0x38]
push dword [esp + 0x54]
call fcn.004dac50
test eax, 0x10000
mov dword [esp + 8], 1
jne 0x423144
mov ebx, dword [esp + 0x7c]
test ebx, ebx
je 0x423159
cmp ebx, edi
jae 0x423153
cmp byte [esi + ebx], 0xc0
jge 0x423159
jmp 0x4235ac
mov ecx, dword [esp + 0x28]
jmp 0x423483
xor ecx, ecx
mov dword [esp + 0x20], 0
jmp 0x423483
jne 0x4235ac
cmp ebx, edi
jne 0x423179
test al, 1
mov ebx, edi
mov ecx, 0
mov dword [esp + 0x20], 0
jne 0x423239
jmp 0x423483
movzx ecx, byte [esi + ebx]
test cl, cl
js 0x423185
mov eax, ecx
jmp 0x4231e2
mov edx, ebx
mov ebx, esi
mov eax, ecx
movzx esi, byte [esi + edx + 1]
and eax, 0x1f
and esi, 0x3f
cmp cl, 0xe0
jb 0x4231cc
mov dword [esp + 4], edx
movzx edx, byte [ebx + edx + 2]
shl esi, 6
and edx, 0x3f
or edx, esi
cmp cl, 0xf0
jb 0x4231d7
mov ecx, dword [esp + 4]
and eax, 7
shl edx, 6
shl eax, 0x12
movzx ecx, byte [ebx + ecx + 3]
and ecx, 0x3f
or ecx, edx
or eax, ecx
jmp 0x4231dc
shl eax, 6
or eax, esi
mov esi, ebx
mov ebx, edx
jmp 0x4231e2
shl eax, 0xc
or eax, edx
mov esi, ebx
mov ebx, dword [esp + 4]
test byte [esp + 0x48], 1
jne 0x423239
mov ecx, 1
cmp eax, 0x80
jb 0x42320e
mov ecx, 2
cmp eax, 0x800
jb 0x42320e
cmp eax, 0x10000
mov ecx, 4
sbb ecx, 0
add ecx, ebx
je 0x423227
cmp ecx, edi
jae 0x423221
cmp byte [esi + ecx], 0xc0
jge 0x423227
jmp 0x4235aa
jne 0x4235aa
cmp ecx, edi
mov ebx, edi
je 0x423239
movzx eax, byte [esi + ecx]
test al, al
jns 0x423237
cmp al, 0xe0
mov ebx, ecx
mov esi, dword [esp + 0x10]
cmp esi, ebx
jb 0x42351a
xor ecx, ecx
mov eax, 1
mov dword [esp + 8], eax
add eax, ecx
push ebx
push dword [esp + 0x3c]
push eax
mov dword [esp + 0x10], ebx
mov ebx, ecx
call sub.msvcrt.dll_memcpy
mov eax, ebx
mov ebx, dword [esp + 0x10]
add esp, 0xc
add eax, ebx
sub esi, eax
mov dword [esp + 0x18], eax
cmp esi, 0xa
jbe 0x42353f
mov edx, dword [esp + 0x24]
mov esi, dword [esp + 8]
mov dword [esi + eax + 7], 0x20313120
mov dword [esi + eax + 4], 0x2073776f
mov dword [esi + eax], 0x646e6957
add eax, 0xb
mov dword [esp + 0x18], eax
jmp 0x4232f6
push 1
push 1
push 0xb
push eax
lea eax, [esp + 0x20]
push eax
call fcn.004183d0
add esp, 0x14
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0xc]
nop word cs:[eax + eax]
nop
mov ebx, dword [esp + 0x1c]
mov edx, dword [esp + 0x24]
mov dword [esi + eax + 7], 0x20313120
mov dword [esi + eax + 4], 0x2073776f
mov dword [esi + eax], 0x646e6957
add eax, 0xb
mov dword [esp + 0x18], eax
test ebx, ebx
je 0x423316
cmp ebx, edi
jae 0x423310
cmp byte [edx + ebx], 0xc0
jge 0x423316
jmp 0x4235ac
jne 0x4235ac
cmp ebx, edi
mov dword [esp + 0x20], eax
je 0x42347d
movzx ecx, byte [edx + ebx]
mov dword [esp + 4], ebx
test cl, cl
js 0x423350
mov eax, ecx
mov ecx, 1
cmp eax, 0x80
jae 0x4233bd
jmp 0x4233d6
mov dword [esp + 8], esi
mov esi, ebx
mov eax, ecx
mov ebx, edx
movzx esi, byte [edx + esi + 1]
and eax, 0x1f
and esi, 0x3f
cmp cl, 0xe0
jb 0x42339b
mov edx, dword [esp + 4]
shl esi, 6
movzx edx, byte [ebx + edx + 2]
and edx, 0x3f
or edx, esi
cmp cl, 0xf0
jb 0x4233a2
mov ecx, dword [esp + 4]
and eax, 7
shl edx, 6
shl eax, 0x12
movzx ecx, byte [ebx + ecx + 3]
and ecx, 0x3f
or ecx, edx
or eax, ecx
jmp 0x4233a7
shl eax, 6
or eax, esi
jmp 0x4233a7
shl eax, 0xc
or eax, edx
mov edx, ebx
mov esi, dword [esp + 8]
mov ebx, dword [esp + 4]
mov ecx, 1
cmp eax, 0x80
jb 0x4233d6
mov ecx, 2
cmp eax, 0x800
jb 0x4233d6
cmp eax, 0x10000
mov ecx, 4
sbb ecx, 0
add ecx, ebx
je 0x4233f6
cmp ecx, edi
jae 0x4233f0
cmp byte [edx + ecx], 0xbf
jg 0x4233f6
jmp 0x4235aa
jne 0x4235aa
cmp ecx, edi
je 0x42340a
mov eax, dword [esp + 0x24]
movzx eax, byte [eax + ecx]
test al, al
jns 0x423408
cmp al, 0xe0
mov edi, ecx
mov dword [esp + 0x1c], edi
sub edi, ebx
mov ebx, dword [esp + 0x10]
mov ecx, dword [esp + 0x20]
mov eax, ebx
sub eax, ecx
cmp eax, edi
jb 0x42345c
mov edx, dword [esp + 4]
lea eax, [esi + ecx]
mov dword [esp + 8], esi
add edx, dword [esp + 0x38]
push edi
push edx
push eax
mov esi, ecx
call sub.msvcrt.dll_memcpy
mov eax, esi
add esp, 0xc
add eax, edi
sub ebx, eax
mov dword [esp + 0x18], eax
cmp ebx, 0xa
jbe 0x4232a5
mov edi, dword [esp + 0xc]
mov esi, dword [esp + 8]
jmp 0x4232d0
push 1
push 1
push edi
push ecx
lea eax, [esp + 0x20]
push eax
call fcn.004183d0
add esp, 0x14
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
jmp 0x423420
mov dword [esp + 8], esi
mov ecx, ebx
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x10]
lea esi, [eax + ecx]
mov eax, ecx
mov ecx, dword [esp + 0x58]
sub edx, dword [esp + 0x20]
sub ecx, eax
cmp edx, ecx
jb 0x4234ee
mov edi, dword [esp + 0x20]
mov eax, dword [esp + 8]
add eax, edi
push ecx
push esi
push eax
mov esi, ecx
call sub.msvcrt.dll_memcpy
add esp, 0xc
add edi, esi
mov ecx, dword [esp + 0x5c]
mov eax, dword [ebp + 8]
mov dword [esp + 0x18], edi
movsd xmm0, qword [esp + 0x10]
test ecx, ecx
mov dword [eax + 8], edi
movsd qword [eax], xmm0
je 0x4234e6
push 1
push ecx
push dword [esp + 0x40]
mov esi, eax
call fcn.0040cd20
add esp, 0xc
mov eax, esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
lea eax, [esp + 0x10]
push 1
push 1
push ecx
push dword [esp + 0x2c]
push eax
mov edi, ecx
call fcn.004183d0
mov ecx, edi
add esp, 0x14
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov dword [esp + 8], eax
mov dword [esp + 0x20], edx
jmp 0x42349e
push 1
push 1
push ebx
push 0
lea eax, [esp + 0x20]
push eax
call fcn.004183d0
add esp, 0x14
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
jmp 0x42324c
push 1
push 1
push 0xb
push eax
lea eax, [esp + 0x20]
push eax
call fcn.004183d0
add esp, 0x14
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x24]
jmp 0x423285
add edi, dword [esp + 0x3c]
jmp 0x42356e
add edi, dword [esp + 0x2c]
mov eax, dword [esp + 0xc]
cmp eax, edi
cmova edi, eax
push 0x57cc60
push eax
push edi
call fcn.004dac50
push 0x57cc50
push edi
push ecx
call fcn.004dac50
push 0x57cc40
push ecx
push eax
call fcn.004dac50
push 0x57cc50
push dword [esp + 0x10]
push eax
call fcn.004dac50
mov ebx, ecx
push 0x57cc80
mov eax, dword [esp + 0x10]
push eax
push ebx
push eax
push dword [esp + 0x34]
call fcn.004e2290
nop word cs:[eax + eax]
nop dword [eax + eax]