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

Disassembly:
sub esp, 0x49c
push ebx
push ebp
mov ebp, ecx
xor ebx, ebx
push esi
push edi
cmp dword [ebp + 0x14], ebx
je 0x41d135
pop edi
pop esi
pop ebp
mov eax, 0x40000
pop ebx
add esp, 0x49c
ret 0x10
mov al, byte [ebp + 0x2c]
test al, al
je 0x41d14e
pop edi
pop esi
pop ebp
mov eax, 0x50000
pop ebx
add esp, 0x49c
ret 0x10
mov eax, dword [ebp]
mov edx, dword [esp + 0x4bc]
cmp eax, ebx
mov dword [esp + 0x2c], ebx
je 0x41d16d
cmp edx, 4
je 0x41d16d
mov dword [esp + 0x2c], 0xc
mov edi, dword [esp + 0x4b0]
or ecx, 0xffffffff
xor eax, eax
lea esi, [esp + 0x3a8]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov dword [esp + 0x14], esi
mov eax, ecx
mov esi, edi
mov edi, dword [esp + 0x14]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov al, byte [esp + 0x3a8]
test al, al
je 0x41d89f
lea eax, [esp + 0x3a8]
cmp byte [eax], 0x5c
jne 0x41d1bc
mov byte [eax], 0x2f
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x41d1b4
cmp edx, 4
sete dl
test dl, dl
mov byte [esp + 0x12], dl
je 0x41d1f2
lea edi, [esp + 0x3a8]
or ecx, 0xffffffff
xor eax, eax
mov byte [esp + 0x13], 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp byte [esp + ecx + 0x3a7], 0x2f
jne 0x41d1f7
mov byte [esp + 0x13], 0
test dl, dl
mov dword [esp + 0x14], 8
jne 0x41d217
lea ecx, [esp + 0x3a8]
push ecx
call fcn.0041c400
add esp, 4
test al, al
je 0x41d21b
mov dword [esp + 0x14], ebx
mov eax, dword [esp + 0x4bc]
cmp eax, 2
jne 0x41d238
mov edx, dword [esp + 0x4b4]
mov ecx, ebp
push edx
call fcn.0041cae0
jmp 0x41d284
cmp eax, 1
jne 0x41d256
mov eax, dword [esp + 0x4b8]
mov ecx, dword [esp + 0x4b4]
push eax
push ecx
mov ecx, ebp
call fcn.0041cb70
jmp 0x41d284
cmp eax, 3
jne 0x41d274
mov edx, dword [esp + 0x4b8]
mov eax, dword [esp + 0x4b4]
push edx
push eax
mov ecx, ebp
call fcn.0041ccc0
jmp 0x41d284
cmp eax, 4
jne 0x41d89f
mov ecx, ebp
call fcn.0041cdb0
cmp eax, ebx
jne 0x41d8a4
mov edi, 0x45ec20
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x80]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov dword [esp + 0x3a4], ebx
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x190]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x3a8]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x190]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov al, byte [esp + 0x13]
not ecx
dec ecx
test al, al
mov dword [esp + 0x60], ecx
je 0x41d339
mov edi, 0x44a288
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x190]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
inc dword [esp + 0x60]
mov edi, 0x45ec20
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x294]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov ax, 8
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp + 0x68]
mov dword [esp + 0x18c], ebx
mov dword [esp + 0x50], ecx
mov ecx, dword [ebp]
cmp ecx, ebx
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x398], 1
mov dword [esp + 0x3a0], ebx
mov word [esp + 0x72], bx
mov word [esp + 0x48], 0xb17
mov word [esp + 0x4a], 0x14
mov dword [esp + 0x54], ebx
mov word [esp + 0x4c], ax
je 0x41d3be
mov cl, byte [esp + 0x12]
test cl, cl
jne 0x41d3be
mov ax, 9
mov word [esp + 0x4c], ax
mov word [esp + 0x74], ax
mov eax, dword [esp + 0x14]
cmp eax, ebx
mov word [esp + 0x4e], ax
jne 0x41d3e3
mov eax, dword [ebp + 0x70]
cmp eax, ebx
jl 0x41d3e3
mov edx, dword [esp + 0x2c]
add eax, edx
mov dword [esp + 0x58], eax
jmp 0x41d3e7
mov dword [esp + 0x58], ebx
mov eax, dword [ebp + 0x70]
mov edx, dword [ebp + 0x18]
mov ecx, dword [ebp + 0x4c]
mov esi, dword [ebp + 0x58]
mov edi, dword [ebp + 0x5c]
mov dword [esp + 0x5c], eax
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x78], ecx
add edx, eax
lea eax, [esp + 0x18]
mov dword [esp + 0x7c], edx
mov dl, byte [ebp + 0x58]
lea ecx, [esp + 0x30]
mov dword [esp + 0x184], eax
mov dword [esp + 0x188], ecx
mov byte [esp + 0x1d], dl
mov ecx, 8
mov eax, esi
mov edx, edi
mov word [esp + 0x70], 0
mov dword [esp + 0x64], 0x11
mov dword [esp + 0x68], 9
mov byte [esp + 0x18], 0x55
mov byte [esp + 0x19], 0x54
mov byte [esp + 0x1a], 0xd
mov byte [esp + 0x1b], 0
mov byte [esp + 0x1c], 7
call sub.ntdll.dll__allshr
mov byte [esp + 0x1e], al
mov ecx, 0x10
mov eax, esi
mov edx, edi
call sub.ntdll.dll__allshr
mov byte [esp + 0x1f], al
mov ecx, 0x18
mov eax, esi
mov edx, edi
call sub.ntdll.dll__allshr
mov esi, dword [ebp + 0x50]
mov edi, dword [ebp + 0x54]
mov bl, al
mov al, byte [ebp + 0x50]
mov byte [esp + 0x21], al
mov ecx, 8
mov eax, esi
mov edx, edi
mov byte [esp + 0x20], bl
call sub.ntdll.dll__allshr
mov byte [esp + 0x22], al
mov ecx, 0x10
mov eax, esi
mov edx, edi
call sub.ntdll.dll__allshr
mov byte [esp + 0x23], al
mov ecx, 0x18
mov eax, esi
mov edx, edi
call sub.ntdll.dll__allshr
mov cl, byte [ebp + 0x60]
mov esi, dword [ebp + 0x60]
mov edi, dword [ebp + 0x64]
mov byte [esp + 0x24], al
mov byte [esp + 0x25], cl
mov ecx, 8
mov eax, esi
mov edx, edi
call sub.ntdll.dll__allshr
mov byte [esp + 0x26], al
mov ecx, 0x10
mov eax, esi
mov edx, edi
call sub.ntdll.dll__allshr
mov byte [esp + 0x27], al
mov ecx, 0x18
mov eax, esi
mov edx, edi
call sub.ntdll.dll__allshr
mov edx, dword [esp + 0x18]
mov byte [esp + 0x28], al
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x30], edx
push ebp
lea ecx, [esp + 0x4c]
push fcn.0041c8e0
push ecx
mov dword [esp + 0x40], eax
mov byte [esp + 0x44], bl
mov byte [esp + 0x3e], 5
call fcn.0041b890
add esp, 0xc
test eax, eax
je 0x41d55b
mov ecx, ebp
call fcn.0041cf60
pop edi
pop esi
pop ebp
mov eax, 0x400
pop ebx
add esp, 0x49c
ret 0x10
mov edx, dword [esp + 0x60]
mov eax, dword [esp + 0x64]
lea ecx, [eax + edx + 0x1e]
mov edx, dword [ebp + 0x18]
mov eax, dword [ebp + 0x14]
add edx, ecx
test eax, eax
mov dword [ebp + 0x18], edx
je 0x41d58d
mov ecx, ebp
call fcn.0041cf60
mov eax, dword [ebp + 0x14]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x49c
ret 0x10
mov esi, dword [ebp]
lea edi, [ebp + 0x30]
test esi, esi
mov dword [edi], 0x12345678
mov dword [ebp + 0x34], 0x23456789
mov dword [ebp + 0x38], 0x34567890
je 0x41d5be
mov al, byte [esi]
test al, al
je 0x41d5be
push eax
push edi
call fcn.0041c350
add esp, 8
inc esi
jne 0x41d5ab
mov al, byte [0x4603b4]
test al, al
jne 0x41d5e1
call dword [sym.imp.USER32.dll_GetDesktopWindow]
mov esi, eax
call dword [sym.imp.KERNEL32.DLL_GetTickCount]
xor esi, eax
push esi
call dword [sym.imp.MSVCRT.dll_srand]
add esp, 4
mov ebx, dword [sym.imp.MSVCRT.dll_rand]
xor esi, esi
call ebx
sar eax, 7
mov byte [esp + esi + 0x3c], al
inc esi
cmp esi, 0xc
jl 0x41d5e9
mov edx, dword [esp + 0x50]
shr edx, 8
mov byte [esp + 0x47], dl
xor esi, esi
mov al, byte [esp + esi + 0x3c]
push eax
push edi
call fcn.0041c3d0
add esp, 8
mov byte [esp + esi + 0x3c], al
inc esi
cmp esi, 0xc
jl 0x41d605
mov eax, dword [ebp]
mov bl, byte [esp + 0x12]
test eax, eax
je 0x41d645
test bl, bl
jne 0x41d645
lea ecx, [esp + 0x3c]
push 0xc
push ecx
push ebp
call fcn.0041c8e0
mov eax, dword [ebp + 0x18]
add esp, 0xc
add eax, 0xc
mov dword [ebp + 0x18], eax
mov eax, dword [ebp]
xor esi, esi
cmp eax, esi
je 0x41d659
test bl, bl
jne 0x41d659
mov eax, 1
jmp 0x41d65b
xor eax, eax
test bl, bl
mov byte [ebp + 0x2d], al
jne 0x41d68a
mov edi, dword [esp + 0x14]
cmp edi, 8
jne 0x41d67b
lea edx, [esp + 0x48]
mov ecx, ebp
push edx
call fcn.0041cfc0
mov esi, eax
jmp 0x41d694
cmp edi, esi
jne 0x41d694
mov ecx, ebp
call fcn.0041d0b0
mov esi, eax
jmp 0x41d694
mov edi, dword [esp + 0x14]
mov dword [ebp + 0x90], esi
mov ecx, ebp
mov byte [ebp + 0x2d], 0
call fcn.0041cf60
mov ecx, dword [ebp + 0x90]
mov eax, dword [ebp + 0x18]
add eax, ecx
mov dword [ebp + 0x18], eax
mov eax, dword [ebp + 0x14]
test eax, eax
jne 0x41d8a4
test esi, esi
je 0x41d6ce
pop edi
pop esi
pop ebp
mov eax, 0x400
pop ebx
add esp, 0x49c
ret 0x10
mov eax, dword [esp + 0x2c]
mov edx, dword [ebp + 0x78]
add eax, ecx
mov ecx, dword [esp + 0x58]
cmp ecx, eax
mov dword [esp + 0x58], eax
mov eax, dword [ebp + 0x70]
mov dword [esp + 0x54], edx
mov dword [esp + 0x5c], eax
mov al, byte [ebp + 0x1c]
sete cl
test al, al
je 0x41d79b
cmp dword [ebp], 0
je 0x41d708
test bl, bl
je 0x41d79b
mov al, byte [esp + 0x4c]
mov word [esp + 0x4e], di
test al, 1
jne 0x41d71c
and word [esp + 0x4c], 0xfff7
mov edx, dword [esp + 0x7c]
mov edi, dword [ebp + 0x10]
mov cx, word [esp + 0x4c]
sub edx, edi
mov word [esp + 0x74], cx
push edx
mov ecx, ebp
call fcn.0041ca00
test al, al
jne 0x41d74d
pop edi
pop esi
pop ebp
mov eax, 0x2000000
pop ebx
add esp, 0x49c
ret 0x10
push ebp
lea eax, [esp + 0x4c]
push fcn.0041c8e0
push eax
call fcn.0041b890
add esp, 0xc
test eax, eax
je 0x41d776
pop edi
pop esi
pop ebp
mov eax, 0x400
pop ebx
add esp, 0x49c
ret 0x10
mov ecx, dword [ebp + 0x18]
push ecx
mov ecx, ebp
call fcn.0041ca00
test al, al
jne 0x41d80a
pop edi
pop esi
pop ebp
mov eax, 0x2000000
pop ebx
add esp, 0x49c
ret 0x10
cmp word [esp + 0x4e], di
je 0x41d7b4
pop edi
pop esi
pop ebp
mov eax, 0x4000000
pop ebx
add esp, 0x49c
ret 0x10
test edi, edi
jne 0x41d7ce
test cl, cl
jne 0x41d7ce
pop edi
pop esi
pop ebp
mov eax, 0x4000000
pop ebx
add esp, 0x49c
ret 0x10
push ebp
lea edx, [esp + 0x4c]
push fcn.0041c8e0
push edx
call fcn.0041bb30
add esp, 0xc
test eax, eax
je 0x41d7f7
pop edi
pop esi
pop ebp
mov eax, 0x400
pop ebx
add esp, 0x49c
ret 0x10
mov eax, dword [ebp + 0x18]
add eax, 0x10
mov dword [ebp + 0x18], eax
mov ax, word [esp + 0x74]
mov word [esp + 0x4c], ax
mov eax, dword [ebp + 0x14]
test eax, eax
jne 0x41d8a4
mov ecx, dword [esp + 0x68]
push ecx
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
mov ecx, dword [esp + 0x6c]
mov esi, dword [esp + 0x18c]
mov edx, ecx
mov edi, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push 0x360
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov dword [esp + 0x190], eax
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
mov ecx, 0xd8
lea esi, [esp + 0x50]
mov edi, eax
add esp, 8
rep movsd dword es:[edi], dword [esi]
mov edx, dword [ebp + 0x44]
test edx, edx
jne 0x41d874
pop edi
mov dword [ebp + 0x44], eax
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x49c
ret 0x10
mov ecx, dword [edx + 0x35c]
test ecx, ecx
je 0x41d88a
mov edx, ecx
mov ecx, dword [edx + 0x35c]
test ecx, ecx
jne 0x41d87e
pop edi
pop esi
mov dword [edx + 0x35c], eax
pop ebp
xor eax, eax
pop ebx
add esp, 0x49c
ret 0x10
mov eax, 0x10000
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x49c
ret 0x10