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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x16c
mov eax, ecx
mov ecx, dword [ebp + 0x14]
push ebx
push esi
mov esi, dword [ebp + 8]
mov dword [esp + 0x14], eax
mov dword [eax + 8], 0
mov dword [eax], ecx
push edi
mov edi, edx
cmp esi, 3
jle 0x45e5b0
mov eax, dword [edi + 0xc]
cmp dword [eax + 8], 4
jne 0x45e5ac
mov ecx, dword [eax]
mov dword [esp + 0x3c], ecx
jmp 0x45e5bb
mov eax, dword [esp + 0x18]
xor ecx, ecx
mov dword [esp + 0x3c], ecx
cmp esi, 2
jle 0x45e5fb
mov ecx, dword [edi + 8]
lea edx, [esp + 0x78]
call fcn.00468790
mov ebx, eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x2c], ebx
mov dword [eax + 4], 0
cmp esi, 4
jle 0x45e60c
mov ecx, dword [edi + 0x10]
mov dword [esp + 0x2c], ebx
cmp dword [ecx + 8], 3
je 0x45e60c
xor edx, edx
call fcn.004686d0
mov dword [esp + 0x1c], eax
mov dword [esp + 0x2c], ebx
jmp 0x45e614
mov dword [eax + 4], ecx
xor ecx, ecx
mov dword [esp + 0x2c], 0x4b6ba9
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x1c], 0xffffffff
mov eax, dword [ebp + 0x14]
xor esi, esi
mov edi, dword [esp + 0x18]
mov ebx, dword [ebp + 0x20]
mov edx, dword [ebp + 0x1c]
mov dword [esp + 0x20], eax
mov dword [esp + 0x38], esi
mov dword [esp + 0x28], esi
nop
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x45ea05
push dword [ebp + 0x24]
mov ecx, dword [ebp + 0xc]
push ebx
push esi
push edx
push dword [ebp + 0x18]
mov edx, dword [ebp + 0x10]
push eax
call fcn.004b2520
mov ecx, eax
add esp, 0x18
mov dword [esp + 0x40], ecx
cmp ecx, 0xffffffff
je 0x45ea01
test ecx, ecx
js 0x45ea8b
mov edx, dword [ebx + 4]
mov ebx, dword [ebx]
mov esi, dword [esp + 0x20]
sub ebx, esi
add ebx, dword [ebp + 0x14]
inc dword [esp + 0x28]
dec dword [esp + 0x1c]
xor eax, eax
mov dword [ebp + 0x1c], edx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x24], eax
nop
test eax, eax
je 0x45e707
mov ecx, dword [esp + 0xc]
lea eax, [ecx + 3]
cmp eax, dword [esp + 0x38]
jle 0x45e6dd
push edx
lea eax, [ecx + 2]
push eax
mov eax, ecx
sub eax, edx
cdq
idiv dword [esp + 0x30]
push dword [ebp + 0x18]
mov edx, dword [esp + 0x34]
mov ecx, eax
push dword [esp + 0x28]
call fcn.0049f2f0
push eax
push dword [edi + 0xc]
mov dword [esp + 0x50], eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_realloc]
add esp, 0x18
test eax, eax
je 0x45eb9c
mov dword [edi + 0xc], eax
test ebx, ebx
je 0x45e6f5
mov eax, dword [edi + 0xc]
add eax, dword [edi + 4]
push ebx
push esi
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add dword [edi + 4], ebx
mov ebx, dword [edi + 0xc]
mov eax, dword [edi + 4]
add ebx, eax
mov edx, dword [esp + 0xc]
mov dword [esp + 0x14], ebx
jmp 0x45e714
mov edx, dword [edi + 4]
add edx, ebx
mov ebx, dword [esp + 0x14]
mov dword [esp + 0xc], edx
mov esi, dword [esp + 0x2c]
nop dword [eax + eax]
cmp dword [esp + 0x24], 0
mov ecx, esi
mov al, byte [esi]
je 0x45e74b
test al, al
je 0x45e742
nop
cmp al, 0x24
je 0x45e73e
inc esi
mov byte [ebx], al
inc ebx
mov al, byte [esi]
test al, al
jne 0x45e730
mov dword [esp + 0x14], ebx
mov eax, esi
sub eax, ecx
add dword [edi + 4], eax
jmp 0x45e766
test al, al
je 0x45e75c
nop
cmp al, 0x24
je 0x45e75c
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x45e750
mov eax, esi
sub eax, ecx
add edx, eax
mov dword [esp + 0xc], edx
cmp byte [esi], 0
je 0x45e9c3
mov bl, byte [esi + 1]
lea eax, [esi + 1]
xor ecx, ecx
mov byte [esp + 0x13], 0
mov dword [esp + 0x34], ecx
mov dword [esp + 0x30], eax
test bl, bl
je 0x45e7e0
movzx eax, bl
test eax, 0xffffff80
je 0x45e796
xor eax, eax
jmp 0x45e7a2
push 2
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__isctype]
add esp, 8
mov cl, bl
and cl, 0xdf
test eax, eax
movzx edx, cl
movzx ecx, bl
cmove edx, ecx
mov bl, dl
movsx eax, bl
sub eax, 0x4c
je 0x45e7c6
sub eax, 8
je 0x45e7c6
sub eax, 1
jne 0x45e7d8
mov ecx, 1
mov byte [esp + 0x13], bl
mov bl, byte [esi + 2]
mov dword [esp + 0x34], ecx
jmp 0x45e7dc
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x30]
mov edi, SysReAllocString
test bl, bl
je 0x45e981
cmp bl, 0x24
je 0x45e97f
cmp bl, 0x7b
je 0x45e814
lea eax, [ebx - 0x30]
cmp al, 9
ja 0x45e981
movsx edi, bl
inc esi
sub edi, 0x30
add esi, ecx
jmp 0x45e8a0
lea eax, [ecx + 2]
add eax, esi
push 0x7d
push eax
call dword [sym.imp.api_ms_win_crt_multibyte_l1_1_0.dll__mbschr]
mov ecx, eax
add esp, 8
mov dword [esp + 0x30], ecx
test ecx, ecx
je 0x45e981
mov ebx, ecx
mov ecx, dword [esp + 0x34]
add ecx, 2
add ecx, esi
sub ebx, ecx
je 0x45e981
cmp ebx, 0x21
jae 0x45e89c
push ebx
push ecx
lea eax, [esp + 0x5c]
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncpy]
add esp, 0xc
mov byte [esp + ebx + 0x54], 0
mov edx, 1
lea ecx, [esp + 0x54]
push 0
push 1
push 0
call fcn.0049e590
add esp, 0xc
test eax, eax
je 0x45e888
lea eax, [esp + 0x54]
push eax
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_atoi]
jmp 0x45e897
push dword [ebp + 0x20]
mov ecx, dword [ebp + 0xc]
lea edx, [esp + 0x58]
call fcn.004b30e0
mov edi, eax
add esp, 4
mov esi, dword [esp + 0x30]
cmp edi, 0x80000000
je 0x45e981
test edi, edi
js 0x45e9b1
cmp edi, dword [esp + 0x40]
jge 0x45e9b1
mov ecx, dword [ebp + 0x20]
mov eax, dword [ecx + edi*8]
mov edi, dword [ecx + edi*8 + 4]
sub edi, eax
je 0x45e9b1
cmp dword [esp + 0x24], 0
mov ebx, dword [esp + 0x14]
je 0x45e96b
add eax, dword [ebp + 0x14]
push edi
push eax
push ebx
call sub.VCRUNTIME140.dll_memcpy
mov al, byte [esp + 0x1f]
add esp, 0xc
test al, al
je 0x45e952
movsx eax, al
mov byte [edi + ebx], 0
sub eax, 0x4c
je 0x45e94b
sub eax, 8
je 0x45e92b
sub eax, 1
jne 0x45e952
push ebx
call dword [sym.imp.USER32.dll_CharUpperA]
mov eax, dword [esp + 0x18]
add ebx, edi
mov edx, dword [esp + 0xc]
mov dword [esp + 0x14], ebx
add dword [eax + 4], edi
mov edi, eax
inc esi
jmp 0x45e720
mov ecx, ebx
call fcn.00420ff0
mov eax, dword [esp + 0x18]
add ebx, edi
mov edx, dword [esp + 0xc]
mov dword [esp + 0x14], ebx
add dword [eax + 4], edi
mov edi, eax
inc esi
jmp 0x45e720
push ebx
call dword [sym.imp.USER32.dll_CharLowerA]
mov eax, dword [esp + 0x18]
add ebx, edi
mov edx, dword [esp + 0xc]
mov dword [esp + 0x14], ebx
add dword [eax + 4], edi
mov edi, eax
inc esi
jmp 0x45e720
mov edx, dword [esp + 0xc]
add edx, edi
mov edi, dword [esp + 0x18]
mov dword [esp + 0xc], edx
inc esi
jmp 0x45e720
mov esi, eax
cmp dword [esp + 0x24], 0
mov ebx, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 0xc]
je 0x45e9a6
mov al, byte [esi]
mov byte [ebx], al
inc ebx
inc dword [edi + 4]
inc esi
mov dword [esp + 0x14], ebx
jmp 0x45e720
inc edx
inc esi
mov dword [esp + 0xc], edx
jmp 0x45e720
mov ebx, dword [esp + 0x14]
inc esi
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 0xc]
jmp 0x45e720
mov eax, dword [esp + 0x24]
mov ebx, dword [esp + 0x44]
inc eax
mov edx, dword [ebp + 0x1c]
mov esi, dword [esp + 0x20]
mov dword [esp + 0x24], eax
cmp eax, 2
jl 0x45e690
mov ebx, dword [ebp + 0x20]
xor esi, esi
mov eax, dword [ebx]
cmp eax, dword [ebx + 4]
mov eax, 0x410
cmove esi, eax
mov eax, dword [ebp + 0x14]
lea ecx, [eax + edx]
mov dword [esp + 0x20], ecx
jmp 0x45e630
mov ecx, dword [esp + 0x1c]
mov eax, dword [ebp + 0x1c]
mov edx, dword [ebp + 0x18]
test esi, esi
je 0x45ead3
cmp eax, edx
jge 0x45ead3
test ecx, ecx
je 0x45ead3
mov eax, dword [esp + 0x20]
xor esi, esi
mov edx, dword [edi + 0xc]
mov ecx, dword [edi + 4]
mov al, byte [eax]
mov byte [edx + ecx], al
mov eax, dword [esp + 0x20]
mov edx, dword [ebp + 0x1c]
inc dword [edi + 4]
inc edx
mov ecx, dword [edi + 4]
cmp byte [eax], 0xd
mov dword [ebp + 0x1c], edx
jne 0x45ea7c
cmp byte [eax + 1], 0xa
jne 0x45ea7c
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x45ea7c
cmp dword [eax], 0x50435245
jne 0x45ea7c
test byte [eax + 0xc], 1
je 0x45ea7c
test dword [eax + 8], 0x400000
je 0x45ea7c
mov eax, dword [edi + 0xc]
mov byte [ecx + eax], 0xa
inc dword [edi + 4]
inc edx
mov dword [ebp + 0x1c], edx
mov eax, dword [ebp + 0x14]
lea ecx, [eax + edx]
mov dword [esp + 0x20], ecx
jmp 0x45e630
mov eax, dword [0x4c8024]
test byte [eax + 0xe0], 1
je 0x45eac5
push 0xa
lea eax, [esp + 0x4c]
push eax
push ecx
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll__itoa]
mov ecx, dword [0x4ccbd4]
add esp, 0xc
push 0x4b6ba9
push str.RegExReplace
push eax
call fcn.0043e6c0
jmp 0x45eb47
push ecx
mov ecx, dword [0x4ca738]
call fcn.004046d0
jmp 0x45eb47
cmp dword [esp + 0x28], 0
je 0x45eb31
sub edx, eax
mov dword [ebp + 0x18], edx
je 0x45eb22
mov esi, dword [edi + 4]
add esi, edx
cmp esi, dword [esp + 0x38]
jl 0x45eb0a
lea eax, [esi + 1]
push eax
push dword [edi + 0xc]
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_realloc]
add esp, 8
test eax, eax
je 0x45eb9c
mov edx, dword [ebp + 0x18]
mov dword [edi + 0xc], eax
mov eax, dword [esp + 0x20]
push edx
push eax
mov eax, dword [edi + 0xc]
add eax, dword [edi + 4]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov dword [edi + 4], esi
mov eax, dword [edi + 4]
mov ecx, dword [edi + 0xc]
mov byte [ecx + eax], 0
mov eax, dword [edi + 0xc]
mov dword [edi], eax
mov ecx, dword [0x4ca738]
push 1
push 0
push 0xffffffffffffffff
push 0x4b6c08
call fcn.004a2db0
mov ebx, dword [esp + 0x3c]
test ebx, ebx
je 0x45ec12
cmp byte [ebx + 0x17], 0
jne 0x45eb5c
mov ebx, dword [ebx + 0xc]
mov cl, byte [ebx + 0x15]
test cl, 2
je 0x45eb75
and cl, 0x3d
mov byte [ebx + 0x15], cl
mov ecx, dword [ebx]
push ecx
mov edx, dword [ecx]
call dword [edx + 8]
mov cl, byte [ebx + 0x15]
mov eax, dword [esp + 0x28]
and cl, 0x9b
cdq
or cl, 0x18
mov dword [ebx], eax
mov dword [ebx + 4], edx
mov byte [ebx + 0x15], cl
jge 0x45ec02
mov ecx, ebx
call fcn.004013b0
and byte [ebx + 0x15], 0x8f
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [0x4c8024]
test byte [eax + 0xe0], 1
jne 0x45ebb9
mov ecx, dword [0x4ca738]
push 0xfffffffffffffffa
call fcn.004046d0
jmp 0x45ebe1
push 0xa
lea eax, [esp + 0x4c]
push eax
push 0xfffffffffffffffa
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll__itoa]
mov ecx, dword [0x4ccbd4]
add esp, 0xc
push 0x4b6ba9
push str.RegExReplace
push eax
call fcn.0043e6c0
mov eax, dword [edi + 0xc]
test eax, eax
je 0x45eb47
push eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
mov dword [edi + 0xc], 0
jmp 0x45eb47
cmp dword [0x4ca760], 0
je 0x45ec12
mov ecx, ebx
call fcn.004013b0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret