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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x53cc15
mov eax, dword fs:[0]
push eax
sub esp, 0xb0
mov eax, dword [0x5ac020]
xor eax, esp
mov dword [esp + 0xa8], eax
push ebx
push esi
push edi
mov eax, dword [0x5ac020]
xor eax, esp
push eax
lea eax, [esp + 0xc0]
mov dword fs:[0], eax
mov edi, ecx
mov dword [esp + 0x24], edi
mov ebx, dword [ebp + 8]
xor eax, eax
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x14], ebx
mov dword [esp + 0x3c], 7
mov dword [esp + 0x38], 0
mov word [esp + 0x28], ax
mov dword [esp + 0xc8], eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], eax
mov dword [esp + 0x84], 7
mov dword [esp + 0x80], eax
mov word [esp + 0x70], ax
mov byte [esp + 0xc8], 1
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x6c], 7
mov dword [esp + 0x68], eax
mov word [esp + 0x58], ax
mov byte [esp + 0xc8], 2
mov dword [esp + 0xb0], eax
mov dword [esp + 0xb4], eax
mov dword [esp + 0xb4], 7
mov dword [esp + 0xb0], eax
mov word [esp + 0xa0], ax
mov byte [esp + 0xc8], 3
mov eax, dword [edi + 0xf4]
test eax, eax
je 0x423913
lea ebx, [eax + 0x168]
mov eax, dword [ebx]
mov ecx, ebx
push 0
push 0x8858
call dword [eax + 0x5c]
mov edx, dword [ebx + 0x6c]
mov eax, dword [ebx + 0x74]
mov esi, dword [ebx + 0x68]
sub eax, edx
mov ecx, dword [ebx + 0x78]
and dword [ebx + 0x64], 0xfffffeff
push eax
mov eax, dword [ebx + 0x70]
mov edi, dword [ecx]
sub eax, esi
push eax
push edx
push esi
push ebx
call dword [edi + 0x1c]
mov ebx, dword [esp + 0x14]
mov edi, dword [esp + 0x24]
mov edx, dword [edi + 0xf4]
test edx, edx
je 0x42392d
add edx, 0xa0
cmp dword [edx + 0x14], 8
jb 0x42392f
mov edx, dword [edx]
jmp 0x42392f
xor edx, edx
cmp word [edx], 0
jne 0x423939
xor ecx, ecx
jmp 0x42394f
mov ecx, edx
lea esi, [ecx + 2]
mov edi, edi
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x423940
sub ecx, esi
sar ecx, 1
push ecx
push edx
lea ecx, [esp + 0x30]
call fcn.00401f10
mov eax, dword [edi + 0xf4]
test eax, eax
je 0x423985
cmp dword [eax + 0x13c], 0
je 0x42397b
mov edi, dword [eax + 0xf0]
mov esi, dword [eax + 0xf4]
jmp 0x42398d
mov edi, dword [eax + 0x14c]
mov esi, edi
jmp 0x42398d
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x18], esi
cmp edi, esi
jle 0x42399f
mov eax, esi
mov esi, edi
mov dword [esp + 0x18], esi
mov edi, eax
mov ecx, dword [ebx + 0x14]
cmp ecx, 8
jb 0x4239af
mov eax, dword [ebx]
mov dword [esp + 0x14], eax
jmp 0x4239b3
mov dword [esp + 0x14], ebx
cmp ecx, 8
jb 0x4239bc
mov edx, dword [ebx]
jmp 0x4239be
mov edx, ebx
mov eax, dword [ebx + 0x10]
lea eax, [edx + eax*2]
cmp ecx, 8
jb 0x4239cd
mov edx, dword [ebx]
jmp 0x4239cf
mov edx, ebx
cmp edx, eax
je 0x4239e5
push ecx
push dword [esp + 0x18]
lea ecx, [esp + 0x24]
push eax
call fcn.004114d0
add esp, 0xc
push 1
push 0
lea eax, [esp + 0x1c]
mov dword [esp + 0x1c], 0x20
push eax
mov ecx, ebx
call fcn.0040c3d0
cmp eax, 0xffffffff
je 0x423a36
mov dword [esp + 0x14], 0x20
lea ebx, [ebx]
push 0
push 0x56c344
push 1
push eax
mov ecx, ebx
call fcn.0040a600
push 1
push 0
lea eax, [esp + 0x1c]
mov ecx, ebx
push eax
call fcn.0040c3d0
cmp eax, 0xffffffff
jne 0x423a10
push 1
push 0
lea eax, [esp + 0x1c]
mov dword [esp + 0x1c], 0x20
push eax
lea ecx, [esp + 0x34]
call fcn.0040c3d0
cmp eax, 0xffffffff
je 0x423a98
mov dword [esp + 0x14], 0x20
lea ecx, [ecx]
cmp eax, edi
jge 0x423a65
dec edi
cmp eax, esi
jge 0x423a6a
dec esi
push 0
push 0x56c344
push 1
push eax
lea ecx, [esp + 0x38]
call fcn.0040a600
push 1
push 0
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x34]
call fcn.0040c3d0
cmp eax, 0xffffffff
jne 0x423a60
mov dword [esp + 0x18], esi
push 0
push 0x56c344
lea ecx, [esp + 0x78]
call fcn.00401f10
mov eax, dword [ebx + 0x10]
xor esi, esi
test eax, eax
je 0x423b9d
cmp eax, esi
jbe 0x423e8e
mov eax, dword [ebx + 0x14]
cmp eax, 8
jb 0x423ac9
mov ecx, dword [ebx]
jmp 0x423acb
mov ecx, ebx
cmp word [ecx + esi*2], 0x30
jb 0x423ae4
cmp eax, 8
jb 0x423adb
mov ecx, dword [ebx]
jmp 0x423add
mov ecx, ebx
cmp word [ecx + esi*2], 0x39
jbe 0x423b10
cmp eax, 8
jb 0x423aed
mov ecx, dword [ebx]
jmp 0x423aef
mov ecx, ebx
cmp word [ecx + esi*2], 0x41
jb 0x423b91
cmp eax, 8
jb 0x423b03
mov ecx, dword [ebx]
jmp 0x423b05
mov ecx, ebx
cmp word [ecx + esi*2], 0x5a
ja 0x423b91
cmp eax, 8
jb 0x423b19
mov eax, dword [ebx]
jmp 0x423b1b
mov eax, ebx
movzx eax, word [eax + esi*2]
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x14], eax
or eax, 0xffffffff
sub eax, ecx
mov dword [esp + 0x1c], ecx
cmp eax, 1
jbe 0x423e84
lea eax, [ecx + 1]
push ecx
push eax
lea ecx, [esp + 0x78]
call fcn.00401eb0
test al, al
je 0x423b91
cmp dword [esp + 0x84], 8
lea ecx, [esp + 0x70]
mov eax, dword [esp + 0x80]
cmovae ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x14]
mov word [ecx + eax*2], dx
lea eax, [esp + 0x70]
mov ecx, dword [esp + 0x1c]
inc ecx
cmp dword [esp + 0x84], 8
mov dword [esp + 0x80], ecx
cmovae eax, dword [esp + 0x70]
xor edx, edx
mov word [eax + ecx*2], dx
mov eax, dword [ebx + 0x10]
inc esi
cmp eax, esi
ja 0x423abd
mov ebx, dword [esp + 0x80]
test ebx, ebx
je 0x424120
cmp edi, dword [esp + 0x18]
jge 0x423e98
push edi
push 0
lea eax, [esp + 0x48]
push eax
lea ecx, [esp + 0x34]
call fcn.00412420
mov esi, eax
mov byte [esp + 0xc8], 4
lea eax, [esp + 0x88]
push 0xffffffffffffffff
push dword [esp + 0x1c]
lea ecx, [esp + 0x30]
push eax
call fcn.00412420
mov byte [esp + 0xc8], 5
mov eax, dword [eax + 0x10]
add eax, dword [esi + 0x10]
add eax, ebx
ret
cmp eax, 0x19
seta byte [esp + 0x23]
mov byte [esp + 0xc8], 4
cmp dword [esp + 0x9c], 8
jb 0x423c21
push dword [esp + 0x88]
call fcn.0051d3d0
add esp, 4
xor eax, eax
mov dword [esp + 0x9c], 7
mov dword [esp + 0x98], 0
mov word [esp + 0x88], ax
mov byte [esp + 0xc8], 3
cmp dword [esp + 0x54], 8
jb 0x423c5c
push dword [esp + 0x40]
call fcn.0051d3d0
add esp, 4
xor eax, eax
mov dword [esp + 0x54], 7
mov dword [esp + 0x50], 0
mov word [esp + 0x40], ax
cmp byte [esp + 0x23], al
je 0x423d34
push edi
push eax
lea eax, [esp + 0x90]
push eax
lea ecx, [esp + 0x34]
call fcn.00412420
mov esi, eax
mov byte [esp + 0xc8], 6
lea eax, [esp + 0x40]
push 0xffffffffffffffff
push dword [esp + 0x1c]
lea ecx, [esp + 0x30]
push eax
call fcn.00412420
mov byte [esp + 0xc8], 7
mov ebx, 0x19
sub ebx, dword [eax + 0x10]
sub ebx, dword [esi + 0x10]
mov byte [esp + 0xc8], 6
cmp dword [esp + 0x54], 8
jb 0x423cdc
push dword [esp + 0x40]
call fcn.0051d3d0
add esp, 4
xor eax, eax
mov dword [esp + 0x54], 7
mov dword [esp + 0x50], 0
mov word [esp + 0x40], ax
mov byte [esp + 0xc8], 3
cmp dword [esp + 0x9c], 8
jb 0x423d14
push dword [esp + 0x88]
call fcn.0051d3d0
add esp, 4
xor eax, eax
mov dword [esp + 0x9c], 7
mov dword [esp + 0x98], 0
mov word [esp + 0x88], ax
push edi
push 0
lea eax, [esp + 0x48]
push eax
lea ecx, [esp + 0x34]
call fcn.00412420
mov esi, eax
mov byte [esp + 0xc8], 8
lea eax, [esp + 0x58]
cmp eax, esi
je 0x423d8b
cmp dword [esp + 0x6c], 8
jb 0x423d6a
push dword [esp + 0x58]
call fcn.0051d3d0
add esp, 4
xor eax, eax
mov dword [esp + 0x6c], 7
push esi
lea ecx, [esp + 0x5c]
mov dword [esp + 0x6c], 0
mov word [esp + 0x5c], ax
call fcn.00421590
mov byte [esp + 0xc8], 3
cmp dword [esp + 0x54], 8
jb 0x423da6
push dword [esp + 0x40]
call fcn.0051d3d0
add esp, 4
xor eax, eax
mov dword [esp + 0x54], 7
xor esi, esi
mov dword [esp + 0x50], 0
mov word [esp + 0x40], ax
test ebx, ebx
je 0x423e23
push 1
push esi
lea eax, [esp + 0x48]
push eax
lea ecx, [esp + 0x7c]
call fcn.00412420
mov byte [esp + 0xc8], 9
lea ecx, [esp + 0x58]
push 0xffffffffffffffff
push 0
push eax
push edi
call fcn.0040e6e0
mov byte [esp + 0xc8], 3
cmp dword [esp + 0x54], 8
jb 0x423e06
push dword [esp + 0x40]
call fcn.0051d3d0
add esp, 4
xor eax, eax
mov dword [esp + 0x54], 7
inc esi
mov dword [esp + 0x50], 0
inc edi
mov word [esp + 0x40], ax
cmp esi, ebx
jb 0x423dc3
push 0xffffffffffffffff
push dword [esp + 0x1c]
lea eax, [esp + 0x48]
push eax
lea ecx, [esp + 0x34]
call fcn.00412420
mov byte [esp + 0xc8], 0xa
lea ecx, [esp + 0x58]
push 0xffffffffffffffff
push 0
push eax
call fcn.0040e530
mov byte [esp + 0xc8], 3
cmp dword [esp + 0x54], 8
jb 0x423e68
push dword [esp + 0x40]
call fcn.0051d3d0
add esp, 4
xor eax, eax
mov dword [esp + 0x54], 7
mov dword [esp + 0x50], 0
mov word [esp + 0x40], ax
jmp 0x423f23
push str.string_too_long
call fcn.004ffb4f
push str.invalid_string_position
call fcn.004ffb7d
mov ecx, dword [esp + 0x38]
lea eax, [ebx + ecx]
cmp eax, 0x19
jbe 0x423eab
mov ebx, 0x19
sub ebx, ecx
push 0xffffffffffffffff
push 0
lea eax, [esp + 0x30]
push eax
lea ecx, [esp + 0x64]
call fcn.00401c40
xor esi, esi
test ebx, ebx
je 0x423f23
push 1
push esi
lea eax, [esp + 0x48]
push eax
lea ecx, [esp + 0x7c]
call fcn.00412420
mov byte [esp + 0xc8], 0xb
lea ecx, [esp + 0x58]
push 0xffffffffffffffff
push 0
push eax
push edi
call fcn.0040e6e0
mov byte [esp + 0xc8], 3
cmp dword [esp + 0x54], 8
jb 0x423f06
push dword [esp + 0x40]
call fcn.0051d3d0
add esp, 4
xor eax, eax
mov dword [esp + 0x54], 7
inc esi
mov dword [esp + 0x50], 0
inc edi
mov word [esp + 0x40], ax
cmp esi, ebx
jb 0x423ec3
push 0
push 0x56c344
lea ecx, [esp + 0x30]
call fcn.00401f10
xor ebx, ebx
cmp dword [esp + 0x68], ebx
jbe 0x424096
mov ecx, dword [esp + 0x38]
cmp dword [esp + 0x6c], 8
lea eax, [esp + 0x58]
cmovae eax, dword [esp + 0x58]
movzx edx, word [eax + ebx*2]
or eax, 0xffffffff
sub eax, ecx
mov dword [esp + 0x1c], edx
cmp eax, 1
jbe 0x423e84
lea esi, [ecx + 1]
cmp esi, 0x7ffffffe
ja 0x423e84
cmp dword [esp + 0x3c], esi
jae 0x423f8d
push ecx
push esi
lea ecx, [esp + 0x30]
call fcn.00401d30
mov edx, dword [esp + 0x1c]
jmp 0x423fa8
test esi, esi
jne 0x423fae
cmp dword [esp + 0x3c], 8
lea eax, [esp + 0x28]
mov dword [esp + 0x38], esi
cmovae eax, dword [esp + 0x28]
xor ecx, ecx
mov word [eax], cx
mov ecx, dword [esp + 0x38]
test esi, esi
setne al
test al, al
je 0x423fe3
cmp dword [esp + 0x3c], 8
lea eax, [esp + 0x28]
cmovae eax, dword [esp + 0x28]
mov word [eax + ecx*2], dx
lea eax, [esp + 0x28]
cmp dword [esp + 0x3c], 8
mov dword [esp + 0x38], esi
cmovae eax, dword [esp + 0x28]
xor ecx, ecx
mov word [eax + esi*2], cx
mov ecx, dword [esp + 0x38]
cmp ecx, 5
je 0x423ffb
cmp ecx, 0xb
je 0x423ffb
cmp ecx, 0x11
je 0x423ffb
cmp ecx, 0x17
jne 0x42408b
cmp ecx, edi
jge 0x424000
inc edi
or eax, 0xffffffff
sub eax, ecx
cmp eax, 1
jbe 0x423e84
lea esi, [ecx + 1]
cmp esi, 0x7ffffffe
ja 0x423e84
cmp dword [esp + 0x3c], esi
jae 0x424030
push ecx
push esi
lea ecx, [esp + 0x30]
call fcn.00401d30
jmp 0x42404b
test esi, esi
jne 0x424051
cmp dword [esp + 0x3c], 8
lea eax, [esp + 0x28]
mov dword [esp + 0x38], esi
cmovae eax, dword [esp + 0x28]
xor ecx, ecx
mov word [eax], cx
mov ecx, dword [esp + 0x38]
test esi, esi
setne al
test al, al
je 0x42408b
cmp dword [esp + 0x3c], 8
lea eax, [esp + 0x28]
mov edx, 0x20
cmovae eax, dword [esp + 0x28]
mov word [eax + ecx*2], dx
lea eax, [esp + 0x28]
cmp dword [esp + 0x3c], 8
mov dword [esp + 0x38], esi
cmovae eax, dword [esp + 0x28]
xor ecx, ecx
mov word [eax + esi*2], cx
mov ecx, dword [esp + 0x38]
inc ebx
cmp dword [esp + 0x68], ebx
ja 0x423f43
mov eax, dword [esp + 0x24]
lea esi, [esp + 0x28]
cmp dword [esp + 0x3c], 8
cmovae esi, dword [esp + 0x28]
mov ebx, dword [eax + 0xf4]
test ebx, ebx
je 0x4240e6
mov ecx, dword [eax + 0x184]
test ecx, ecx
je 0x4240da
mov edx, esi
lea eax, [edx + 2]
mov dword [esp + 0x1c], eax
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x4240c5
sub edx, dword [esp + 0x1c]
sar edx, 1
cmp edx, ecx
ja 0x4240e2
push esi
mov ecx, ebx
call fcn.004ecd40
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 0xf4]
test ecx, ecx
je 0x424120
test edi, edi
je 0x424102
jns 0x424102
mov dword [ecx + 0x14c], 0
jmp 0x42411a
mov eax, dword [ecx + 0xb0]
cmp edi, eax
jle 0x424114
mov dword [ecx + 0x14c], eax
jmp 0x42411a
mov dword [ecx + 0x14c], edi
push edi
call fcn.004ee7e0
mov ecx, dword [esp + 0x24]
mov esi, dword [ecx + 0xf4]
test esi, esi
je 0x42416e
mov eax, dword [esi + 0x1e0]
add esi, 0x168
mov eax, dword [eax + 0x78]
test byte [eax + 0x64], 0x80
je 0x424160
mov eax, dword [esi]
mov ecx, esi
push 0
push 0x1f4
push 0x8858
mov dword [esi + 0x88], 1
call dword [eax + 0x58]
mov eax, dword [esi]
mov ecx, esi
or dword [esi + 0x64], 0x100
call dword [eax + 0x20]
mov byte [esp + 0xc8], 2
xor eax, eax
mov dword [esp + 0xb4], 7
mov dword [esp + 0xb0], 0
mov word [esp + 0xa0], ax
mov byte [esp + 0xc8], 1
cmp dword [esp + 0x6c], 8
jb 0x4241b1
push dword [esp + 0x58]
call fcn.0051d3d0
add esp, 4
xor eax, eax
mov dword [esp + 0x6c], 7
mov dword [esp + 0x68], 0
mov word [esp + 0x58], ax
mov byte [esp + 0xc8], al
cmp dword [esp + 0x84], 8
jb 0x4241e5
push dword [esp + 0x70]
call fcn.0051d3d0
add esp, 4
xor eax, eax
mov dword [esp + 0x84], 7
mov dword [esp + 0x80], 0
mov word [esp + 0x70], ax
mov dword [esp + 0xc8], 0xffffffff
cmp dword [esp + 0x3c], 8
jb 0x424220
push dword [esp + 0x28]
call fcn.0051d3d0
add esp, 4
xor eax, eax
mov dword [esp + 0x3c], 7
mov dword [esp + 0x38], 0
mov word [esp + 0x28], ax
mov ecx, dword [esp + 0xc0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xa8]
xor ecx, esp
call fcn.004ffcef
mov esp, ebp
pop ebp
ret 4