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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x5c
mov eax, dword [esp + 0x70]
mov ebp, dword [esp + 0x74]
mov dword [esp + 0x20], eax
test eax, eax
jle 0x41a3da
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x28], 0
xor esi, esi
sub eax, 1
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x7c]
sub eax, 2
and eax, 0xfffffffe
mov dword [esp + 0x30], eax
mov eax, ebp
mov ebp, ecx
mov edi, eax
movzx eax, byte [edi + esi + 4]
lea ebx, [esi + 1]
cmp al, 0x24
je 0x41a3e8
mov edx, 1
mov ecx, ebp
mov byte [esp + 0x24], al
call sym._prepareAdd_8
movzx eax, byte [esp + 0x24]
mov ecx, dword [ebp + 4]
mov edx, dword [ebp]
mov byte [ecx + edx + 4], al
mov eax, dword [ebp]
add eax, 1
jo 0x41af76
mov edx, dword [ebp + 4]
mov dword [ebp], eax
mov byte [edx + eax + 4], 0
mov esi, ebx
cmp esi, dword [esp + 0x20]
jl 0x41a390
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret 0x10
cmp ebx, dword [esp + 0x20]
jge 0x41a39c
movzx edx, byte [edi + ebx + 4]
cmp dl, 0x5a
ja 0x41a588
cmp dl, 0x22
jbe case.0x41a413.2
lea eax, [edx - 0x23]
cmp al, 0x37
ja case.0x41a413.2
movzx eax, al
jmp dword [eax*4 + 0x4de34c]
cmp dl, 0x5f
je case.0x41a413.30
sub edx, 0x61
cmp dl, 0x19
ja case.0x41a413.2
mov eax, ebx
jmp 0x41a43a
test edx, edx
js 0x41a9a0
mov eax, edx
movzx edx, byte [edi + eax + 4]
mov ecx, edx
and ecx, 0xffffffdf
sub ecx, 0x41
cmp cl, 0x19
jbe 0x41a46d
mov ecx, edx
shr cl, 7
cmp dl, 0x5f
mov byte [esp + 0x24], cl
sete cl
or cl, byte [esp + 0x24]
jne 0x41a46d
sub edx, 0x30
cmp dl, 9
ja 0x41af8a
lea edx, [eax + 1]
cmp edx, dword [esp + 0x20]
jne 0x41a430
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x34], ecx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 8], ebx
mov dword [esp], eax
mov dword [esp + 4], edi
call sym._substr__system_u8785_16
sub esp, 0x10
mov dword [esp], 0x4db1c8
mov dword [esp + 0x38], edx
mov dword [esp + 0x40], eax
call sym.___emutls_get_address
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x24], eax
test edx, edx
jle 0x41ab1d
mov ebx, dword [esp + 0x7c]
test ebx, ebx
jle 0x41aea7
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x78]
mov dword [esp + 0x44], esi
xor ebx, ebx
mov dword [esp + 0x48], ebp
mov esi, dword [esp + 0x40]
and eax, 0xfffffffe
mov dword [esp + 0x40], edi
mov ebp, ecx
mov dword [esp + 0x3c], eax
jmp 0x41a516
test eax, eax
je 0x41ac70
lea eax, [ebx + 2]
mov edx, eax
cmp dword [esp + 0x30], ebx
je 0x41ad08
add ebp, 0x10
cmp dword [esp + 0x3c], ebx
je 0x41ad1d
mov ebx, eax
mov eax, dword [ebp]
mov edx, dword [ebp + 4]
mov dword [esp], esi
mov edi, ebx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0xc], edx
mov dword [esp + 4], eax
call sym._nsuCmpIgnoreStyle_16
sub esp, 0x10
mov ecx, dword [esp + 0x24]
cmp byte [ecx], 0
je 0x41a4f0
mov esi, dword [esp + 0x44]
mov ebp, dword [esp + 0x48]
mov dword [esp + 0x44], ebx
mov edi, dword [esp + 0x40]
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x41a9c8
mov eax, dword [esp + 0x38]
mov eax, dword [eax]
mov dword [esp + 0x34], eax
test eax, 0x40000000
jne 0x41a9c8
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call sym._deallocShared
jmp 0x41a9c8
cmp dl, 0x7b
je 0x41a7d8
jbe 0x41a41a
add dl, 0x80
jns case.0x41a413.30
mov eax, dword [esp + 0x20]
mov dword [esp + 4], edi
mov dword [esp], eax
call sym._invalidFormatString__pureZstrutils_u2568
mov dword [esp], 0x4db1c8
call sym.___emutls_get_address
cmp byte [eax], 0
je 0x41a3d4
jmp 0x41a3da
add esi, 2
cmp dl, 0x2d
cmovne esi, ebx
xor eax, eax
jmp 0x41a60a
movzx ecx, byte [edi + esi + 4]
lea ebx, [ecx - 0x30]
cmp bl, 9
ja 0x41a610
imul eax, eax, 0xa
jo 0x41a74b
add eax, ecx
jo 0x41a74b
sub eax, 0x30
jo 0x41a74b
add esi, 1
cmp esi, dword [esp + 0x20]
jl 0x41a5e0
cmp dl, 0x2d
je 0x41ac5c
sub eax, 1
jo 0x41a74b
test eax, eax
js 0x41ab60
cmp eax, dword [esp + 0x7c]
jge 0x41ab9c
mov ebx, dword [esp + 0x78]
mov ecx, ebp
lea eax, [ebx + eax*8]
mov edx, dword [eax]
mov dword [esp + 0x24], eax
call sym._prepareAdd_8
mov eax, dword [esp + 0x24]
mov ebx, dword [eax]
test ebx, ebx
jle 0x41a3d4
mov eax, dword [eax + 4]
mov edx, ebx
add edx, 1
mov dword [esp + 0x24], eax
jo 0x41ac52
test edx, edx
js 0x41ad5a
mov eax, dword [ebp]
mov ecx, dword [ebp + 4]
mov dword [esp + 8], edx
lea ecx, [ecx + eax + 4]
mov eax, dword [esp + 0x24]
mov dword [esp], ecx
add eax, 4
mov dword [esp + 4], eax
call sym._memcpy
add ebx, dword [ebp]
jo 0x41ac52
mov dword [ebp], ebx
jmp 0x41a3d4
mov eax, dword [esp + 0x28]
cmp eax, dword [esp + 0x7c]
jge 0x41a950
test eax, eax
js 0x41a975
mov ebx, dword [esp + 0x78]
mov ecx, ebp
lea eax, [ebx + eax*8]
mov edx, dword [eax]
mov dword [esp + 0x24], eax
call sym._prepareAdd_8
mov eax, dword [esp + 0x24]
mov ebx, dword [eax]
test ebx, ebx
jle 0x41a723
mov eax, dword [eax + 4]
mov edx, ebx
add edx, 1
mov dword [esp + 0x24], eax
jo 0x41a993
test edx, edx
js 0x41a9e0
mov eax, dword [ebp + 4]
mov ecx, dword [ebp]
mov dword [esp + 8], edx
lea ecx, [eax + ecx + 4]
mov eax, dword [esp + 0x24]
mov dword [esp], ecx
add eax, 4
mov dword [esp + 4], eax
call sym._memcpy
add ebx, dword [ebp]
jo 0x41a993
mov dword [ebp], ebx
mov eax, esi
xor edx, edx
add eax, 2
js 0x41af6c
cmp eax, esi
jb 0x41af6c
mov esi, eax
test edx, edx
jne 0x41a74b
mov eax, dword [esp + 0x28]
add eax, 1
mov dword [esp + 0x28], eax
jno 0x41a7a9
call sym._raiseOverflow
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret 0x10
mov edx, 1
mov ecx, ebp
call sym._prepareAdd_8
mov eax, dword [ebp]
mov edx, dword [ebp + 4]
mov byte [edx + eax + 4], 0x24
mov eax, dword [ebp]
add eax, 1
jo 0x41af62
mov edx, dword [ebp + 4]
mov dword [ebp], eax
mov byte [edx + eax + 4], 0
mov eax, esi
xor edx, edx
add eax, 2
js 0x41af4e
cmp eax, esi
jb 0x41af4e
mov esi, eax
test edx, edx
jne 0x41a74b
cmp esi, dword [esp + 0x20]
jge 0x41a3da
test esi, esi
jns 0x41a390
mov eax, dword [esp + 0x20]
mov dword [esp], esi
sub eax, 1
mov dword [esp + 4], eax
call sym._raiseIndexError2
jmp 0x41a3da
mov ebx, esi
xor eax, eax
add ebx, 2
mov dword [esp + 0x34], ebx
js 0x41af58
cmp ebx, esi
jb 0x41af58
mov dword [esp + 0x38], eax
test eax, eax
jne 0x41a74b
mov eax, dword [esp + 0x34]
test eax, eax
js 0x41abc8
mov esi, dword [esp + 0x20]
cmp eax, esi
jge 0x41abc8
mov esi, eax
movzx eax, byte [edi + eax + 4]
xor ebx, ebx
cmp al, 0x2d
mov byte [esp + 0x3c], al
sete bl
xor eax, eax
xor ecx, ecx
mov dword [esp + 0x24], eax
add ebx, esi
jmp 0x41a880
movzx edx, byte [edi + ebx + 4]
test dl, dl
je 0x41a886
cmp dl, 0x7d
je 0x41a886
lea esi, [edx - 0x30]
mov eax, esi
cmp al, 9
ja 0x41a940
imul eax, dword [esp + 0x24], 0xa
jo 0x41a74b
add eax, edx
jo 0x41a74b
sub eax, 0x30
mov dword [esp + 0x24], eax
jo 0x41a74b
test ecx, ecx
mov eax, 1
cmove ecx, eax
add ebx, 1
cmp ebx, dword [esp + 0x20]
jl 0x41a838
mov eax, dword [esp + 0x24]
cmp ecx, 1
jne 0x41aa19
cmp byte [esp + 0x3c], 0x2d
je 0x41adae
sub eax, 1
mov esi, eax
jo 0x41a74b
test esi, esi
js 0x41ab62
cmp esi, dword [esp + 0x7c]
jge 0x41ab9e
mov eax, dword [esp + 0x78]
mov ecx, ebp
lea esi, [eax + esi*8]
mov edx, dword [esi]
call sym._prepareAdd_8
mov edx, dword [esi]
test edx, edx
jle 0x41a918
mov ecx, edx
mov esi, dword [esi + 4]
add ecx, 1
jo 0x41ada4
test ecx, ecx
js 0x41aded
mov eax, dword [ebp]
mov dword [esp + 0x24], edx
add esi, 4
mov edx, dword [ebp + 4]
mov dword [esp + 8], ecx
mov dword [esp + 4], esi
lea eax, [edx + eax + 4]
mov dword [esp], eax
call sym._memcpy
mov eax, dword [esp + 0x24]
add eax, dword [ebp]
jo 0x41ada4
mov dword [ebp], eax
mov esi, ebx
xor eax, eax
add esi, 1
js 0x41af80
cmp esi, ebx
jb 0x41af80
test eax, eax
je 0x41a7a9
jmp 0x41a74b
mov ecx, 0xffffffff
jmp 0x41a87d
mov eax, dword [esp + 0x20]
mov dword [esp + 4], edi
mov dword [esp], eax
call sym._invalidFormatString__pureZstrutils_u2568
mov dword [esp], 0x4db1c8
call sym.___emutls_get_address
cmp byte [eax], 0
jne 0x41a3da
mov eax, dword [esp + 0x2c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x28]
mov dword [esp], eax
call sym._raiseIndexError2
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret 0x10
call sym._raiseOverflow
jmp 0x41a723
mov eax, dword [esp + 0x20]
mov dword [esp], edx
sub eax, 1
mov dword [esp + 4], eax
call sym._raiseIndexError2
mov dword [esp], 0x4db1c8
call sym.___emutls_get_address
mov dword [esp + 0x24], eax
lea esi, [esi]
nop
mov eax, dword [esp + 0x24]
cmp byte [eax], 0
je 0x41a7a9
jmp 0x41a3da
mov dword [esp + 0x10], 0x7fffffff
mov dword [esp + 0x14], 0
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp], 0x80000000
mov dword [esp + 4], 0xffffffff
call sym._raiseRangeErrorI
jmp 0x41a723
lea eax, [ebx - 1]
mov dword [esp + 4], edi
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call sym._substr__system_u8785_16
sub esp, 0x10
mov dword [esp], 0x4db1c8
mov dword [esp + 0x3c], eax
mov dword [esp + 0x34], edx
call sym.___emutls_get_address
mov esi, dword [esp + 0x2c]
mov dword [esp + 0x24], eax
test esi, esi
jle 0x41af03
mov ecx, dword [esp + 0x7c]
test ecx, ecx
jle 0x41abf8
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x78]
mov dword [esp + 0x40], ebx
xor esi, esi
mov dword [esp + 0x48], ebp
mov ebx, dword [esp + 0x3c]
and eax, 0xfffffffe
mov dword [esp + 0x3c], edi
mov ebp, edx
mov dword [esp + 0x38], eax
jmp 0x41aab6
test eax, eax
je 0x41ae88
lea eax, [esi + 2]
mov ecx, eax
cmp dword [esp + 0x30], esi
je 0x41adc8
add ebp, 0x10
cmp dword [esp + 0x38], esi
je 0x41abe4
mov esi, eax
mov eax, dword [ebp]
mov edx, dword [ebp + 4]
mov dword [esp], ebx
mov edi, esi
mov dword [esp + 8], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0xc], edx
mov dword [esp + 4], eax
call sym._nsuCmpIgnoreStyle_16
sub esp, 0x10
mov ecx, dword [esp + 0x24]
cmp byte [ecx], 0
je 0x41aa90
mov ebx, dword [esp + 0x40]
mov ebp, dword [esp + 0x48]
mov dword [esp + 0x4c], esi
mov edi, dword [esp + 0x3c]
mov eax, dword [esp + 0x34]
test eax, eax
je 0x41ab0b
mov eax, dword [eax]
mov dword [esp + 0x38], eax
test eax, 0x40000000
je 0x41ad93
mov eax, dword [esp + 0x24]
cmp byte [eax], 0
je 0x41a918
jmp 0x41a3da
cmp byte [eax], 0
jne 0x41a552
mov eax, dword [esp + 0x20]
mov dword [esp + 4], edi
mov dword [esp], eax
call sym._invalidFormatString__pureZstrutils_u2568
mov eax, dword [esp + 0x24]
cmp byte [eax], 0
jne 0x41aeae
mov edx, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
test edx, edx
jne 0x41a55e
jmp 0x41a7a9
mov esi, eax
mov eax, dword [esp + 0x20]
mov dword [esp + 4], edi
mov dword [esp], eax
call sym._invalidFormatString__pureZstrutils_u2568
mov dword [esp], 0x4db1c8
call sym.___emutls_get_address
cmp byte [eax], 0
jne 0x41a3da
mov eax, dword [esp + 0x2c]
mov dword [esp], esi
mov dword [esp + 4], eax
call sym._raiseIndexError2
jmp 0x41a3da
mov esi, eax
mov eax, dword [esp + 0x20]
mov dword [esp + 4], edi
mov dword [esp], eax
call sym._invalidFormatString__pureZstrutils_u2568
mov dword [esp], 0x4db1c8
call sym.___emutls_get_address
cmp byte [eax], 0
je 0x41ab87
jmp 0x41a3da
mov eax, dword [esp + 0x20]
sub eax, 1
mov dword [esp + 4], eax
mov eax, dword [esp + 0x34]
mov dword [esp], eax
call sym._raiseIndexError2
jmp 0x41a3da
mov ebx, dword [esp + 0x40]
mov ebp, dword [esp + 0x48]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x4c], edi
mov edi, dword [esp + 0x3c]
mov eax, dword [esp + 0x2c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call sym._raiseIndexError2
mov eax, dword [esp + 0x24]
cmp byte [eax], 0
jne 0x41aaf2
cmp dword [esp + 0x4c], 0xffffffff
je 0x41add8
mov esi, dword [esp + 0x2c]
mov eax, dword [esp + 0x4c]
cmp esi, eax
jle 0x41add8
add eax, 1
cmp dword [esp + 0x7c], eax
jg 0x41ae26
mov dword [esp + 4], esi
mov dword [esp], eax
call sym._raiseIndexError2
jmp 0x41aaf2
call sym._raiseOverflow
jmp 0x41a3d4
mov edx, dword [esp + 0x7c]
sub edx, eax
mov eax, edx
jno 0x41a622
jmp 0x41a74b
mov esi, dword [esp + 0x44]
mov ebp, dword [esp + 0x48]
mov dword [esp + 0x44], ebx
mov edi, dword [esp + 0x40]
mov ebx, dword [esp + 0x2c]
mov eax, dword [esp + 0x44]
cmp ebx, eax
jle 0x41ab26
add eax, 1
cmp dword [esp + 0x7c], eax
jg 0x41acaa
mov dword [esp + 4], ebx
mov dword [esp], eax
call sym._raiseIndexError2
jmp 0x41a552
mov esi, dword [esp + 0x78]
mov ecx, ebp
lea ebx, [esi + eax*8]
mov edx, dword [ebx]
call sym._prepareAdd_8
mov esi, dword [ebx]
test esi, esi
jle 0x41acff
mov ecx, esi
mov ebx, dword [ebx + 4]
add ecx, 1
jo 0x41ae9d
test ecx, ecx
js 0x41aec0
mov eax, dword [ebp]
mov edx, dword [ebp + 4]
mov dword [esp + 8], ecx
lea edx, [edx + eax + 4]
lea eax, [ebx + 4]
mov dword [esp + 4], eax
mov dword [esp], edx
call sym._memcpy
add esi, dword [ebp]
jo 0x41ae9d
mov dword [ebp], esi
mov esi, dword [esp + 0x34]
jmp 0x41a552
mov esi, dword [esp + 0x44]
mov ebp, dword [esp + 0x48]
mov dword [esp + 0x44], ebx
mov edi, dword [esp + 0x40]
jmp 0x41ab26
mov esi, dword [esp + 0x44]
mov ebp, dword [esp + 0x48]
mov dword [esp + 0x44], edi
mov edi, dword [esp + 0x40]
mov eax, dword [esp + 0x2c]
mov dword [esp], edx
mov dword [esp + 4], eax
call sym._raiseIndexError2
mov eax, dword [esp + 0x24]
cmp byte [eax], 0
jne 0x41a552
cmp dword [esp + 0x44], 0xffffffff
jne 0x41ac80
jmp 0x41ab26
mov dword [esp + 0x10], 0x7fffffff
mov dword [esp + 0x14], 0
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp], 0x80000000
mov dword [esp + 4], 0xffffffff
call sym._raiseRangeErrorI
jmp 0x41a3d4
mov eax, dword [esp + 0x34]
mov dword [esp], eax
call sym._deallocShared
jmp 0x41ab0b
call sym._raiseOverflow
jmp 0x41a918
mov edx, dword [esp + 0x7c]
sub edx, eax
mov esi, edx
jno 0x41a8a9
jmp 0x41a74b
mov ebx, dword [esp + 0x40]
mov ebp, dword [esp + 0x48]
mov dword [esp + 0x4c], esi
mov edi, dword [esp + 0x3c]
mov eax, dword [esp + 0x20]
mov dword [esp + 4], edi
mov dword [esp], eax
call sym._invalidFormatString__pureZstrutils_u2568
jmp 0x41aaf2
mov dword [esp + 0x10], 0x7fffffff
mov dword [esp + 0x14], 0
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp], 0x80000000
mov dword [esp + 4], 0xffffffff
call sym._raiseRangeErrorI
jmp 0x41a918
mov esi, dword [esp + 0x78]
mov ecx, ebp
lea esi, [esi + eax*8]
mov edx, dword [esi]
call sym._prepareAdd_8
mov eax, dword [esi]
mov dword [esp + 0x38], eax
test eax, eax
jle 0x41aaf2
add eax, 1
mov esi, dword [esi + 4]
mov ecx, eax
jo 0x41aef9
test eax, eax
js 0x41af15
mov eax, dword [ebp]
mov edx, dword [ebp + 4]
mov dword [esp + 8], ecx
lea edx, [edx + eax + 4]
lea eax, [esi + 4]
mov dword [esp + 4], eax
mov dword [esp], edx
call sym._memcpy
mov eax, dword [esp + 0x38]
add eax, dword [ebp]
jo 0x41aef9
mov dword [ebp], eax
jmp 0x41aaf2
mov ebx, dword [esp + 0x40]
mov ebp, dword [esp + 0x48]
mov dword [esp + 0x4c], esi
mov edi, dword [esp + 0x3c]
jmp 0x41ac24
call sym._raiseOverflow
jmp 0x41acff
xor edx, edx
jmp 0x41ad2d
mov eax, dword [esp + 0x38]
test eax, eax
jne 0x41a55e
jmp 0x41a3da
mov dword [esp + 0x10], 0x7fffffff
mov dword [esp + 0x14], 0
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp], 0x80000000
mov dword [esp + 4], 0xffffffff
call sym._raiseRangeErrorI
jmp 0x41acff
call sym._raiseOverflow
jmp 0x41aaf2
mov eax, dword [esp + 0x24]
cmp byte [eax], 0
jne 0x41aaf2
jmp 0x41add8
mov dword [esp + 0x10], 0x7fffffff
mov dword [esp + 0x14], 0
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp], 0x80000000
mov dword [esp + 4], 0xffffffff
call sym._raiseRangeErrorI
jmp 0x41aaf2
mov edx, 1
jmp 0x41a7a3
mov eax, 1
jmp 0x41a7f1
call sym._raiseOverflow
jmp 0x41a78e
mov edx, 1
jmp 0x41a738
call sym._raiseOverflow
jmp 0x41a3d2
mov eax, 1
jmp 0x41a92d
mov dword [esp + 0x34], eax
sub eax, 1
jmp 0x41a47e