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

Disassembly:
sub esp, 0xb0
push ebx
push ebp
mov ebp, dword [sym.imp.MSVCRT.dll_rand]
push esi
push edi
mov esi, ecx
call ebp
cdq
mov ecx, 5
idiv ecx
add edx, 0xa
test edx, edx
jle 0x404175
mov ebx, edx
mov edx, dword [0x41066c]
push 1
push 0
push 0
lea edi, [edx + 0x84]
call ebp
xor edx, edx
mov ecx, 0x300
div ecx
push edx
call ebp
mov edx, dword [esi]
and eax, 0x3ff
push eax
push 0xffffffffffffffff
push edx
call dword [edi]
mov eax, dword [0x41066c]
push 0x1f4
call dword [eax + 0x104]
dec ebx
jne 0x404135
mov ecx, dword [esi]
mov edx, dword [0x41066c]
push 2
push 0x2dc
push 0x400
push 0
push 0
push 0xffffffffffffffff
push ecx
call dword [edx + 0x84]
mov eax, dword [esi]
mov ecx, dword [0x41066c]
push 1
push 0
push 0
push 0
push 0
push 0xffffffffffffffff
push eax
call dword [ecx + 0x84]
mov ecx, esi
call fcn.00403e60
test eax, eax
jne 0x4041c7
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xb0
ret
mov ecx, esi
call fcn.00403eb0
mov edx, 0x9d
mov edi, pe_nt_image_headers32
mov dword [esp + 0x48], edx
mov dword [esp + 0x60], edx
mov dword [esp + 0x80], edx
mov edx, 0xbc
mov dword [esp + 0x58], edi
mov dword [esp + 0x78], edi
mov dword [esp + 0x84], edx
mov dword [esp + 0x8c], edx
mov dword [esp + 0x90], edi
mov dword [esp + 0x94], edx
mov ecx, 0x9a
mov eax, 0xab
mov ebx, 0xc4
mov edi, 0x11f
mov edx, 0x144
mov dword [esp + 0x20], 0x3b
mov dword [esp + 0x24], 0x6a
mov dword [esp + 0x28], 0x48
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x30], 0x72
mov dword [esp + 0x34], ecx
mov dword [esp + 0x38], 0x41
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], 0x6c
mov dword [esp + 0x44], eax
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x50], ebx
mov dword [esp + 0x54], ecx
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], 0x3b
mov dword [esp + 0x6c], 0x6a
mov dword [esp + 0x70], ebx
mov dword [esp + 0x74], eax
mov dword [esp + 0x7c], eax
mov dword [esp + 0x88], ebx
mov dword [esp + 0x98], edi
mov dword [esp + 0x9c], ecx
mov dword [esp + 0xa0], edx
mov dword [esp + 0xa4], ecx
mov dword [esp + 0xa8], edi
mov dword [esp + 0xac], eax
mov dword [esp + 0xb0], edx
mov dword [esp + 0xb4], eax
mov dword [esp + 0xb8], 0x3b
mov dword [esp + 0xbc], 0x6a
mov word [esp + 0x18], 0x66
mov word [esp + 0x1a], 0x11b
mov word [esp + 0x1c], 0x1d0
mov word [esp + 0x1e], 0x285
call ebp
cdq
mov ecx, 3
idiv ecx
mov edi, edx
add edi, 0x14
mov dword [esp + 0x14], edi
call ebp
cdq
mov ecx, 3
idiv ecx
add edx, 2
je 0x4043d4
mov dword [esp + 0x10], edx
call ebp
xor edx, edx
mov ecx, 0x14
div ecx
xor edi, edi
xor eax, eax
mov ebx, 2
and edx, 0xffff
shl edx, 3
mov di, word [esp + edx + 0x24]
mov ax, word [esp + edx + 0x20]
shl edi, 0x10
or edi, eax
mov ecx, dword [esi + 4]
mov edx, dword [0x41066c]
push edi
push 1
push 0x201
push ecx
call dword [edx + 0x80]
mov eax, dword [0x41066c]
push 0x64
call dword [eax + 0x104]
mov ecx, dword [esi + 4]
mov edx, dword [0x41066c]
push edi
push 0
push 0x202
push ecx
call dword [edx + 0x80]
mov eax, dword [0x41066c]
push 0x3e8
call dword [eax + 0x104]
dec ebx
jne 0x404360
mov ecx, dword [0x41066c]
push 0x3e8
call dword [ecx + 0x104]
mov eax, dword [esp + 0x10]
dec eax
mov dword [esp + 0x10], eax
jne 0x404334
mov edi, dword [esp + 0x14]
and edi, 0xffff
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], edi
jle 0x404757
mov edi, 0xa
mov edx, dword [esi + 4]
mov eax, dword [0x41066c]
push 0xb03e6
push 1
push 0x201
push edx
call dword [eax + 0x80]
mov ecx, dword [0x41066c]
push 0x64
call dword [ecx + 0x104]
mov edx, dword [esi + 4]
mov eax, dword [0x41066c]
push 0xb03e6
push 0
push 0x202
push edx
call dword [eax + 0x80]
mov ecx, dword [0x41066c]
push 0x64
call dword [ecx + 0x104]
dec edi
jne 0x4043f1
mov edi, 2
mov edx, dword [esi + 8]
mov eax, dword [0x41066c]
push 0xc00c1
push 1
push 0x201
push edx
call dword [eax + 0x80]
mov ecx, dword [0x41066c]
push 0x64
call dword [ecx + 0x104]
mov edx, dword [esi + 8]
mov eax, dword [0x41066c]
push 0xc00c1
push 0
push 0x202
push edx
call dword [eax + 0x80]
mov ecx, dword [0x41066c]
push 0x3e8
call dword [ecx + 0x104]
mov edx, dword [esi + 8]
mov eax, dword [0x41066c]
push 0x650037
push 1
push 0x201
push edx
call dword [eax + 0x80]
mov ecx, dword [0x41066c]
push 0x64
call dword [ecx + 0x104]
mov edx, dword [esi + 8]
mov eax, dword [0x41066c]
push 0x650037
push 0
push 0x202
push edx
call dword [eax + 0x80]
mov ecx, dword [0x41066c]
push 0x3e8
call dword [ecx + 0x104]
dec edi
jne 0x40444b
call ebp
xor edx, edx
mov ecx, 0x14
div ecx
xor edi, edi
xor eax, eax
mov ebx, 2
and edx, 0xffff
shl edx, 3
mov di, word [esp + edx + 0x24]
mov ax, word [esp + edx + 0x20]
shl edi, 0x10
or edi, eax
mov ecx, dword [esi + 4]
mov edx, dword [0x41066c]
push edi
push 1
push 0x201
push ecx
call dword [edx + 0x80]
mov eax, dword [0x41066c]
push 0x64
call dword [eax + 0x104]
mov ecx, dword [esi + 4]
mov edx, dword [0x41066c]
push edi
push 0
push 0x202
push ecx
call dword [edx + 0x80]
mov eax, dword [0x41066c]
push 0x7d0
call dword [eax + 0x104]
dec ebx
jne 0x404528
mov ecx, dword [0x41066c]
push 0xbb8
call dword [ecx + 0x104]
mov ecx, esi
call fcn.00404080
mov edi, 0xa
mov edx, dword [esi + 4]
mov eax, dword [0x41066c]
push 0x11d03e6
push 1
push 0x201
push edx
call dword [eax + 0x80]
mov ecx, dword [0x41066c]
push 0x64
call dword [ecx + 0x104]
mov edx, dword [esi + 4]
mov eax, dword [0x41066c]
push 0x11d03e6
push 0
push 0x202
push edx
call dword [eax + 0x80]
mov ecx, dword [0x41066c]
push 0x64
call dword [ecx + 0x104]
dec edi
jne 0x404595
call ebp
and eax, 7
xor edi, edi
mov di, word [esp + eax*2 + 0x18]
call ebp
cdq
mov ecx, 0x262
and edi, 0xffff
idiv ecx
mov eax, dword [0x41066c]
add edx, 0xa
and edx, 0xffff
shl edx, 0x10
mov ebx, edx
mov edx, dword [esi + 4]
or ebx, edi
push ebx
push 1
push 0x201
push edx
call dword [eax + 0x80]
mov ecx, dword [0x41066c]
push 0x64
call dword [ecx + 0x104]
mov edx, dword [esi + 4]
mov eax, dword [0x41066c]
push ebx
push 0
push 0x202
push edx
call dword [eax + 0x80]
mov ecx, dword [0x41066c]
push 0xfa0
call dword [ecx + 0x104]
mov edx, dword [esi + 4]
mov eax, dword [0x41066c]
push edx
call dword [eax + 0x60]
test eax, eax
je 0x404757
mov ecx, dword [esi + 4]
mov edx, dword [0x41066c]
push 0xc5002c
push 1
push 0x201
push ecx
call dword [edx + 0x80]
mov eax, dword [0x41066c]
push 0x64
call dword [eax + 0x104]
mov ecx, dword [esi + 4]
mov edx, dword [0x41066c]
push 0xc5002c
push 0
push 0x202
push ecx
call dword [edx + 0x80]
mov eax, dword [0x41066c]
push 0xfa0
call dword [eax + 0x104]
mov ecx, dword [esi + 4]
mov edx, dword [0x41066c]
push 0xef0292
push 1
push 0x201
push ecx
call dword [edx + 0x80]
mov eax, dword [0x41066c]
push 0x64
call dword [eax + 0x104]
mov ecx, dword [esi + 4]
mov edx, dword [0x41066c]
push 0xef0292
push 0
push 0x202
push ecx
call dword [edx + 0x80]
mov eax, dword [0x41066c]
push 0xfa0
call dword [eax + 0x104]
mov ecx, dword [esi + 4]
mov edx, dword [0x41066c]
push ecx
call dword [edx + 0x60]
test eax, eax
je 0x404757
mov eax, dword [0x41066c]
push 0x3e8
call dword [eax + 0x104]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
inc eax
cmp eax, ecx
mov dword [esp + 0x10], eax
jl 0x4043ec
mov ecx, dword [esi]
mov edx, dword [0x41066c]
push 1
push 0
push 0
push 0
push 0
push 0xfffffffffffffffe
push ecx
call dword [edx + 0x84]
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0xb0
ret