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

Disassembly:
sub esp, 0x70
push ebx
mov ebx, dword [esp + 0x78]
push ebp
push esi
mov dword [esp + 0xc], ecx
push edi
mov edi, ebx
or ecx, 0xffffffff
xor eax, eax
xor ebp, ebp
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x18], ebp
mov edi, ecx
mov dword [esp + 0x14], ebp
mov dword [esp + 0x1c], ebp
lea esi, [edi - 1]
cmp esi, ebp
jl 0x41a45e
cmp byte [esi + ebx], 0x2f
je 0x41a42d
dec esi
jns 0x41a422
jmp 0x41a45e
cmp esi, ebp
mov eax, 1
je 0x41a438
mov eax, esi
push eax
push ebx
call fcn.0041c440
sub edi, esi
mov dword [esp + 0x20], eax
dec edi
lea eax, [esi + ebx + 1]
push edi
push eax
call fcn.0041c440
mov edi, eax
add esp, 0x10
cmp edi, ebp
mov dword [esp + 0x24], edi
jne 0x41a47e
cmp ebx, ebp
je 0x41a5fe
cmp byte [ebx], 0
je 0x41a5fe
push ebx
call fcn.0041c3f0
mov edi, eax
add esp, 4
mov dword [esp + 0x24], edi
mov esi, str.onResult
mov eax, edi
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x41a4a9
test cl, cl
je 0x41a4a5
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x41a4a9
add eax, 2
add esi, 2
test cl, cl
jne 0x41a485
xor eax, eax
jmp 0x41a4ae
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x41a4bf
mov dword [esp + 0x14], 1
jmp 0x41a54c
mov esi, str.onStatus
mov eax, edi
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x41a4ea
test cl, cl
je 0x41a4e6
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x41a4ea
add eax, 2
add esi, 2
test cl, cl
jne 0x41a4c6
xor eax, eax
jmp 0x41a4ef
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x41a56c
mov eax, dword [esp + 0x88]
mov dword [esp + 0x14], 3
cmp dword [eax], 3
jne 0x41a54c
mov ecx, dword [eax + 8]
push str.level
call fcn.004532e0
mov esi, eax
test esi, esi
je 0x41a54c
push 6
push str.error
lea ecx, [esp + 0x30]
call fcn.0041c830
mov ecx, dword [esi + 8]
lea eax, [esp + 0x28]
push eax
call fcn.0041ceb0
test eax, eax
jne 0x41a543
mov dword [esp + 0x14], 2
lea ecx, [esp + 0x28]
call fcn.0041c9c0
mov eax, dword [esp + 0x18]
test eax, eax
je 0x41a5aa
mov ecx, eax
mov eax, dword [esp + 0x10]
push 0
push ecx
mov edx, dword [eax + 4]
mov ecx, dword [eax]
push edx
call fcn.004593a0
mov ebp, eax
jmp 0x41a5b1
mov esi, str.onError
mov eax, edi
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x41a597
test cl, cl
je 0x41a593
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x41a597
add eax, 2
add esi, 2
test cl, cl
jne 0x41a573
xor eax, eax
jmp 0x41a59c
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x41a54c
mov dword [esp + 0x14], 2
jmp 0x41a54c
mov eax, dword [esp + 0x10]
mov ebp, dword [eax + 4]
test ebp, ebp
mov dword [esp + 0x20], ebp
jne 0x41a65c
mov edi, dword [esp + 0x18]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [ecx - 1]
test eax, eax
jl 0x41a5fe
cmp byte [eax + ebx], 0x2f
je 0x41a5e7
dec eax
jns 0x41a5d2
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x70
ret 0xc
sub ecx, eax
dec ecx
push ecx
lea ecx, [eax + ebx + 1]
push ecx
call fcn.0041c440
mov edi, eax
add esp, 8
test edi, edi
jne 0x41a60a
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x70
ret 0xc
push edi
call fcn.0041c330
add esp, 4
mov ecx, 0x4de568
mov esi, eax
push edi
call fcn.0041e9a0
test esi, esi
je 0x41aa58
mov edi, dword [esp + 0x10]
push esi
mov edx, dword [edi + 8]
mov eax, dword [edx + 0xc]
push eax
call fcn.0049caa0
mov ebp, eax
mov eax, dword [edi + 0x28]
add esp, 8
mov dword [esp + 0x20], ebp
mov ecx, dword [eax + 4]
mov edx, dword [eax]
mov dword [edx + ecx*4], esi
mov ecx, dword [eax + 4]
inc ecx
test ebp, ebp
mov dword [eax + 4], ecx
je 0x41aa58
mov edi, dword [esp + 0x88]
xor esi, esi
mov ebx, 6
push edi
lea ecx, [esp + 0x4c]
mov dword [esp + 0x54], esi
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x50], esi
call fcn.00454fb0
cmp dword [esp + 0x8c], esi
je 0x41a8d6
mov eax, dword [esp + 0x14]
cmp eax, 2
je 0x41a8d6
cmp eax, 3
je 0x41a8d6
cmp eax, 1
jne 0x41a732
push edi
lea ecx, [esp + 0x3c]
mov dword [esp + 0x44], esi
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], esi
call fcn.00454fb0
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
mov ecx, esi
call fcn.00461400
test eax, eax
je 0x41a6f0
mov edx, dword [esi + 0xc90]
mov eax, dword [esi + 0xc8c]
lea ecx, [esp + 0x38]
shl edx, 4
push ecx
lea ecx, [edx + eax - 0x10]
call fcn.00454fb0
lea ecx, [esp + 0x38]
mov ebx, 1
call fcn.00454b70
mov ecx, dword [esp + 0x3c]
test ecx, ecx
je 0x41a909
mov eax, dword [ecx]
mov edx, eax
and edx, 0xfffffffe
not eax
dec edx
and eax, 1
xor edx, eax
mov dword [ecx], edx
mov eax, dword [ecx]
test eax, 0xfffffffe
jg 0x41a909
call fcn.00456510
jmp 0x41a909
push edi
lea ecx, [esp + 0x3c]
mov dword [esp + 0x44], esi
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], esi
call fcn.00454fb0
cmp dword [esp + 0x38], 3
jne 0x41a75e
mov ecx, dword [esp + 0x40]
mov edi, ecx
call fcn.00452e00
mov esi, eax
jmp 0x41a772
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
push ecx
lea ecx, [esp + 0x3c]
call fcn.00454e10
mov edi, dword [esp + 0x40]
mov edx, dword [esp + 0x10]
mov ebx, esi
mov eax, dword [edx]
push eax
push 0x4d28b8
call fcn.004562c0
add esp, 8
mov dword [esp + 0x28], eax
lea eax, [esp + 0x28]
lea ecx, [esp + 0x58]
push eax
call fcn.00455120
mov ecx, dword [esp + 0x28]
test ecx, ecx
je 0x41a7c1
mov eax, dword [ecx]
mov edx, eax
and edx, 0xfffffffe
not eax
dec edx
and eax, 1
xor edx, eax
mov dword [ecx], edx
mov eax, dword [ecx]
test eax, 0xfffffffe
jg 0x41a7c1
call fcn.00456510
mov eax, esi
dec esi
test eax, eax
je 0x41a864
lea ebp, [esi + 1]
lea ecx, [esp + 0x58]
push ecx
mov ecx, edi
call fcn.00455660
lea edx, [esp + 0x58]
xor eax, eax
push edx
lea ecx, [esp + 0x2c]
mov dword [esp + 0x34], eax
mov dword [esp + 0x2c], 6
mov dword [esp + 0x30], eax
call fcn.00454fb0
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
mov ecx, esi
call fcn.00461400
test eax, eax
je 0x41a829
mov edx, dword [esi + 0xc90]
mov eax, dword [esi + 0xc8c]
lea ecx, [esp + 0x28]
shl edx, 4
push ecx
lea ecx, [edx + eax - 0x10]
call fcn.00454fb0
lea ecx, [esp + 0x28]
call fcn.00454b70
mov ecx, dword [esp + 0x2c]
test ecx, ecx
je 0x41a859
mov eax, dword [ecx]
mov edx, eax
and edx, 0xfffffffe
not eax
dec edx
and eax, 1
xor edx, eax
mov dword [ecx], edx
mov eax, dword [ecx]
test eax, 0xfffffffe
jg 0x41a859
call fcn.00456510
dec ebp
jne 0x41a7cf
mov ebp, dword [esp + 0x20]
lea ecx, [esp + 0x58]
call fcn.004551c0
mov ecx, dword [esp + 0x70]
test ecx, ecx
je 0x41a894
mov eax, dword [ecx]
mov edx, eax
and edx, 0xfffffffe
not eax
dec edx
and eax, 1
xor edx, eax
mov dword [ecx], edx
mov eax, dword [ecx]
test eax, 0xfffffffe
jg 0x41a894
call fcn.00456510
lea ecx, [esp + 0x58]
call fcn.00454b70
mov ecx, dword [esp + 0x5c]
test ecx, ecx
je 0x41a8c4
mov eax, dword [ecx]
mov edx, eax
and edx, 0xfffffffe
not eax
dec edx
and eax, 1
xor edx, eax
mov dword [ecx], edx
mov eax, dword [ecx]
test eax, 0xfffffffe
jg 0x41a8c4
call fcn.00456510
lea ecx, [esp + 0x38]
call fcn.00454b70
mov ecx, dword [esp + 0x3c]
jmp 0x41a702
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
mov ecx, esi
call fcn.00461400
test eax, eax
je 0x41a904
mov edx, dword [esi + 0xc90]
mov eax, dword [esi + 0xc8c]
lea ecx, [esp + 0x48]
shl edx, 4
push ecx
lea ecx, [edx + eax - 0x10]
call fcn.00454fb0
mov ebx, 1
mov ecx, dword [esp + 0x24]
mov esi, dword [esp + 0x10]
push 0
push 0
push 0
push 0
push ebx
push ecx
mov ecx, dword [esi]
push 0
push ebp
call fcn.00463850
test eax, eax
je 0x41a93a
mov ecx, dword [esi]
mov dword [esp + 0x1c], 1
push 1
jmp 0x41aa18
cmp dword [esp + 0x14], 2
jne 0x41aa1d
mov edi, dword [esp + 0x10]
mov esi, dword [edi]
mov ecx, esi
call fcn.00461400
test eax, eax
je 0x41a973
mov eax, dword [esi + 0xc90]
mov ecx, dword [esi + 0xc8c]
shl eax, 4
lea edx, [esp + 0x48]
push edx
lea ecx, [eax + ecx - 0x10]
call fcn.00454fb0
mov edx, dword [edi + 4]
mov ecx, dword [edi]
push 0
push 0
push 0
push 0
push 1
push str.onStatus
push 0
push edx
call fcn.00463850
test eax, eax
je 0x41a9a1
mov ecx, dword [edi]
mov dword [esp + 0x1c], 1
push 1
jmp 0x41aa18
mov ecx, dword [edi]
push 0
push str._global.System
mov eax, dword [ecx + 0x7c]
mov eax, dword [eax + 0x20]
add eax, 0x110
push eax
call fcn.004593a0
mov esi, eax
test esi, esi
je 0x41aa1d
mov ebx, dword [esp + 0x10]
mov edi, dword [ebx]
mov ecx, edi
call fcn.00461400
test eax, eax
je 0x41a9ef
mov edx, dword [edi + 0xc90]
mov eax, dword [edi + 0xc8c]
lea ecx, [esp + 0x48]
shl edx, 4
push ecx
lea ecx, [edx + eax - 0x10]
call fcn.00454fb0
mov ecx, dword [ebx]
push 0
push 0
push 0
push 0
push 1
push str.onStatus
push 0
push esi
call fcn.00463850
test eax, eax
je 0x41aa1d
mov ecx, dword [ebx]
mov dword [esp + 0x1c], 1
push 1
call fcn.00439b30
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx]
call fcn.00461550
lea ecx, [esp + 0x48]
call fcn.00454b70
mov ecx, dword [esp + 0x4c]
test ecx, ecx
je 0x41aa58
mov eax, dword [ecx]
mov edx, eax
and edx, 0xfffffffe
not eax
dec edx
and eax, 1
xor edx, eax
mov dword [ecx], edx
mov eax, dword [ecx]
test eax, 0xfffffffe
jg 0x41aa58
call fcn.00456510
mov eax, dword [esp + 0x18]
test eax, eax
je 0x41aa6b
push eax
mov ecx, 0x4de568
call fcn.0041e9a0
mov eax, dword [esp + 0x24]
mov ecx, 0x4de568
push eax
call fcn.0041e9a0
mov eax, dword [esp + 0x1c]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x70
ret 0xc