Function at 0x41a290
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 0x41a2fe
cmp byte [esi + ebx], 0x2f
je 0x41a2cd
dec esi
jns 0x41a2c2
jmp 0x41a2fe
cmp esi, ebp
mov eax, 1
je 0x41a2d8
mov eax, esi
push eax
push ebx
call fcn.0041c2e0
sub edi, esi
mov dword [esp + 0x20], eax
dec edi
lea eax, [esi + ebx + 1]
push edi
push eax
call fcn.0041c2e0
mov edi, eax
add esp, 0x10
cmp edi, ebp
mov dword [esp + 0x24], edi
jne 0x41a31e
cmp ebx, ebp
je 0x41a49e
cmp byte [ebx], 0
je 0x41a49e
push ebx
call fcn.0041c290
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 0x41a349
test cl, cl
je 0x41a345
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x41a349
add eax, 2
add esi, 2
test cl, cl
jne 0x41a325
xor eax, eax
jmp 0x41a34e
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x41a35f
mov dword [esp + 0x14], 1
jmp 0x41a3ec
mov esi, str.onStatus
mov eax, edi
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x41a38a
test cl, cl
je 0x41a386
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x41a38a
add eax, 2
add esi, 2
test cl, cl
jne 0x41a366
xor eax, eax
jmp 0x41a38f
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x41a40c
mov eax, dword [esp + 0x88]
mov dword [esp + 0x14], 3
cmp dword [eax], 3
jne 0x41a3ec
mov ecx, dword [eax + 8]
push str.level
call fcn.004529e0
mov esi, eax
test esi, esi
je 0x41a3ec
push 6
push str.error
lea ecx, [esp + 0x30]
call fcn.0041c6d0
mov ecx, dword [esi + 8]
lea eax, [esp + 0x28]
push eax
call fcn.0041cd30
test eax, eax
jne 0x41a3e3
mov dword [esp + 0x14], 2
lea ecx, [esp + 0x28]
call fcn.0041c840
mov eax, dword [esp + 0x18]
test eax, eax
je 0x41a44a
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.00458aa0
mov ebp, eax
jmp 0x41a451
mov esi, str.onError
mov eax, edi
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x41a437
test cl, cl
je 0x41a433
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x41a437
add eax, 2
add esi, 2
test cl, cl
jne 0x41a413
xor eax, eax
jmp 0x41a43c
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x41a3ec
mov dword [esp + 0x14], 2
jmp 0x41a3ec
mov eax, dword [esp + 0x10]
mov ebp, dword [eax + 4]
test ebp, ebp
mov dword [esp + 0x20], ebp
jne 0x41a4fc
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 0x41a49e
cmp byte [eax + ebx], 0x2f
je 0x41a487
dec eax
jns 0x41a472
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.0041c2e0
mov edi, eax
add esp, 8
test edi, edi
jne 0x41a4aa
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x70
ret 0xc
push edi
call fcn.0041c1d0
add esp, 4
mov ecx, 0x4da3e8
mov esi, eax
push edi
call fcn.0041e810
test esi, esi
je 0x41a8f8
mov edi, dword [esp + 0x10]
push esi
mov edx, dword [edi + 8]
mov eax, dword [edx + 0xc]
push eax
call fcn.00499f00
mov ebp, eax
mov eax, dword [edi + 0x24]
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 0x41a8f8
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.004546b0
cmp dword [esp + 0x8c], esi
je 0x41a776
mov eax, dword [esp + 0x14]
cmp eax, 2
je 0x41a776
cmp eax, 3
je 0x41a776
cmp eax, 1
jne 0x41a5d2
push edi
lea ecx, [esp + 0x3c]
mov dword [esp + 0x44], esi
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], esi
call fcn.004546b0
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
mov ecx, esi
call fcn.0045fa10
test eax, eax
je 0x41a590
mov edx, dword [esi + 0xc8c]
mov eax, dword [esi + 0xc88]
lea ecx, [esp + 0x38]
shl edx, 4
push ecx
lea ecx, [edx + eax - 0x10]
call fcn.004546b0
lea ecx, [esp + 0x38]
mov ebx, 1
call fcn.00454270
mov ecx, dword [esp + 0x3c]
test ecx, ecx
je 0x41a7a9
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 0x41a7a9
call fcn.00455c10
jmp 0x41a7a9
push edi
lea ecx, [esp + 0x3c]
mov dword [esp + 0x44], esi
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], esi
call fcn.004546b0
cmp dword [esp + 0x38], 3
jne 0x41a5fe
mov ecx, dword [esp + 0x40]
mov edi, ecx
call fcn.00452500
mov esi, eax
jmp 0x41a612
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
push ecx
lea ecx, [esp + 0x3c]
call fcn.00454510
mov edi, dword [esp + 0x40]
mov edx, dword [esp + 0x10]
mov ebx, esi
mov eax, dword [edx]
push eax
push 0x4ce8a0
call fcn.004559c0
add esp, 8
mov dword [esp + 0x28], eax
lea eax, [esp + 0x28]
lea ecx, [esp + 0x58]
push eax
call fcn.00454820
mov ecx, dword [esp + 0x28]
test ecx, ecx
je 0x41a661
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 0x41a661
call fcn.00455c10
mov eax, esi
dec esi
test eax, eax
je 0x41a704
lea ebp, [esi + 1]
lea ecx, [esp + 0x58]
push ecx
mov ecx, edi
call fcn.00454d60
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.004546b0
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
mov ecx, esi
call fcn.0045fa10
test eax, eax
je 0x41a6c9
mov edx, dword [esi + 0xc8c]
mov eax, dword [esi + 0xc88]
lea ecx, [esp + 0x28]
shl edx, 4
push ecx
lea ecx, [edx + eax - 0x10]
call fcn.004546b0
lea ecx, [esp + 0x28]
call fcn.00454270
mov ecx, dword [esp + 0x2c]
test ecx, ecx
je 0x41a6f9
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 0x41a6f9
call fcn.00455c10
dec ebp
jne 0x41a66f
mov ebp, dword [esp + 0x20]
lea ecx, [esp + 0x58]
call fcn.004548c0
mov ecx, dword [esp + 0x70]
test ecx, ecx
je 0x41a734
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 0x41a734
call fcn.00455c10
lea ecx, [esp + 0x58]
call fcn.00454270
mov ecx, dword [esp + 0x5c]
test ecx, ecx
je 0x41a764
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 0x41a764
call fcn.00455c10
lea ecx, [esp + 0x38]
call fcn.00454270
mov ecx, dword [esp + 0x3c]
jmp 0x41a5a2
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
mov ecx, esi
call fcn.0045fa10
test eax, eax
je 0x41a7a4
mov edx, dword [esi + 0xc8c]
mov eax, dword [esi + 0xc88]
lea ecx, [esp + 0x48]
shl edx, 4
push ecx
lea ecx, [edx + eax - 0x10]
call fcn.004546b0
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.00461e70
test eax, eax
je 0x41a7da
mov ecx, dword [esi]
mov dword [esp + 0x1c], 1
push 1
jmp 0x41a8b8
cmp dword [esp + 0x14], 2
jne 0x41a8bd
mov edi, dword [esp + 0x10]
mov esi, dword [edi]
mov ecx, esi
call fcn.0045fa10
test eax, eax
je 0x41a813
mov eax, dword [esi + 0xc8c]
mov ecx, dword [esi + 0xc88]
shl eax, 4
lea edx, [esp + 0x48]
push edx
lea ecx, [eax + ecx - 0x10]
call fcn.004546b0
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.00461e70
test eax, eax
je 0x41a841
mov ecx, dword [edi]
mov dword [esp + 0x1c], 1
push 1
jmp 0x41a8b8
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.00458aa0
mov esi, eax
test esi, esi
je 0x41a8bd
mov ebx, dword [esp + 0x10]
mov edi, dword [ebx]
mov ecx, edi
call fcn.0045fa10
test eax, eax
je 0x41a88f
mov edx, dword [edi + 0xc8c]
mov eax, dword [edi + 0xc88]
lea ecx, [esp + 0x48]
shl edx, 4
push ecx
lea ecx, [edx + eax - 0x10]
call fcn.004546b0
mov ecx, dword [ebx]
push 0
push 0
push 0
push 0
push 1
push str.onStatus
push 0
push esi
call fcn.00461e70
test eax, eax
je 0x41a8bd
mov ecx, dword [ebx]
mov dword [esp + 0x1c], 1
push 1
call fcn.00439830
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx]
call fcn.0045fb60
lea ecx, [esp + 0x48]
call fcn.00454270
mov ecx, dword [esp + 0x4c]
test ecx, ecx
je 0x41a8f8
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 0x41a8f8
call fcn.00455c10
mov eax, dword [esp + 0x18]
test eax, eax
je 0x41a90b
push eax
mov ecx, 0x4da3e8
call fcn.0041e810
mov eax, dword [esp + 0x24]
mov ecx, 0x4da3e8
push eax
call fcn.0041e810
mov eax, dword [esp + 0x1c]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x70
ret 0xc