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

Disassembly:
push 0xffffffffffffffff
push 0x44a9e9
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x40
mov eax, dword [0x45e540]
xor eax, esp
push ebx
mov ebx, dword [esp + 0x58]
push ebp
mov ebp, dword [esp + 0x60]
push esi
push edi
mov edi, dword [esp + 0x60]
push 0xa
push 0x40100000
mov esi, ecx
mov ecx, dword [esp + 0x78]
push 0x3e800000
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x78]
push 0x3f400000
mov dword [esp + 0x38], ecx
lea ecx, [esi + 0x18]
push 0x11
mov dword [esp + 0x4c], esi
mov dword [esp + 0x5c], eax
mov dword [esi], 0x44d1b8
call fcn.004084a0
mov dword [esp + 0x58], 0
call fcn.00442fd0
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [esi + 0x48], eax
mov dword [esi + 0x50], 0
mov ecx, dword [0x45cbdc]
mov edx, dword [0x45cbcc]
imul ecx, ecx, 0x63e546
mov eax, dword [0x45cbe8]
imul edx, edx, 0x5643ad
imul eax, eax, 0x53439e
add ecx, edx
add ecx, eax
mov eax, 0x1b2eb4bf
imul dword [0x45cbd4]
sar edx, 0x14
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ecx, eax
mov eax, 0x1b2eb4bf
imul dword [0x45cbcc]
sar edx, 0x14
add ecx, edx
mov eax, edx
shr eax, 0x1f
add eax, ecx
mov dword [esp + 0x10], eax
mov eax, 0x7a2fd6e1
imul dword [0x45cbcc]
mov eax, dword [esp + 0x10]
sar edx, 0x16
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub eax, ecx
mov ecx, dword [0x45cbd4]
mov dword [esp + 0x10], eax
mov eax, 0xa3c4e0d7
imul dword [0x45cbd4]
add edx, ecx
mov ecx, dword [esp + 0x10]
sar edx, 0x16
mov eax, edx
shr eax, 0x1f
add ecx, edx
add eax, ecx
mov dword [str._r_____r____], eax
mov byte [esp + 0x58], 2
mov dword [esi + 4], 1
lea eax, [esi + 8]
mov dword [eax], edi
mov dword [eax + 4], ebx
mov edx, dword [esp + 0x48]
mov dword [eax + 8], ebp
mov dword [eax + 0xc], edx
mov ecx, dword [0x45cbd4]
mov eax, 0x2900b7f9
imul ecx
sar edx, 0x14
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [0x45cbe4]
imul edx, edx, 0x41d422
add eax, edx
mov edx, dword [0x45cbe0]
imul edx, edx, 0x5643ad
add eax, edx
mov edx, dword [0x45cbe8]
imul edx, edx, 0x53439e
sub eax, edx
mov dword [esp + 0x10], eax
mov eax, 0xa3c4e0d7
imul ecx
add edx, ecx
mov ecx, dword [esp + 0x10]
sar edx, 0x16
add ecx, edx
mov eax, edx
shr eax, 0x1f
add eax, ecx
mov ecx, dword [0x45cbcc]
mov dword [esp + 0x10], eax
mov eax, 0x4f7fd81
imul ecx
mov ecx, dword [esp + 0x10]
sar edx, 0x11
mov eax, edx
shr eax, 0x1f
add ecx, edx
mov edx, dword [str._r_____r____]
add eax, ecx
mov ecx, dword [esp + 0x28]
sub eax, edx
push ecx
mov ecx, dword [esp + 0x4c]
add eax, 0x41fb8b
lea edx, [esp + 0x1c]
mov dword [0x45cbcc], eax
push edx
sub esp, 0x10
mov eax, esp
mov dword [eax], edi
mov dword [eax + 4], ebx
mov dword [eax + 8], ebp
mov byte [esp + 0x2f], 0
mov dword [eax + 0xc], ecx
call fcn.004055a0
mov ecx, dword [0x45cbdc]
mov edi, dword [str._r_____r____]
mov edx, dword [0x45cbd8]
mov ebx, eax
lea ebp, [edx + edi]
imul edi, edi, 0x640b17
imul ebp, ebp, 0x63e546
mov eax, ecx
imul eax, eax, 0x5643ad
add ebp, eax
mov eax, 0xa3c4e0d7
imul ecx
add edx, ecx
sar edx, 0x16
mov eax, edx
shr eax, 0x1f
add ebp, edx
add eax, ebp
add eax, edi
mov ebp, eax
mov eax, 0x4f7fd81
add esp, 0x18
imul ecx
mov edi, dword [0x45cbe0]
sar edx, 0x11
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ebp, eax
test ebx, ebx
lea ebp, [edi + ebp - 0x41d422]
mov dword [0x45cbd4], ebp
jl 0x40994d
mov edx, dword [0x45cbcc]
imul ecx, ecx, 0x41d422
imul edi, edi, 0x85c28b
mov eax, dword [0x45cbd0]
lea ebx, [eax + edx]
mov eax, 0x2900b7f9
imul ebx, ebx, 0x8616f6
imul edx
sar edx, 0x14
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ebx, eax
add ebx, ecx
mov ecx, dword [0x45cbe4]
mov eax, 0x1b2eb4bf
imul ecx
sar edx, 0x14
add ebx, edi
mov edi, edx
add ebx, edx
mov eax, 0xa3c4e0d7
imul ecx
mov eax, dword [esp + 0x18]
add edx, ecx
sar edx, 0x16
shr edi, 0x1f
mov ecx, edx
add edi, ebx
shr ecx, 0x1f
add edi, edx
add ecx, edi
mov dword [0x45cbdc], ecx
mov edx, dword [eax]
lea ecx, [esp + 0x2c]
push ecx
push eax
call dword [edx + 0xc]
test eax, eax
jl 0x4094e7
mov edx, dword [0x45cbd4]
mov eax, dword [0x45cbc8]
mov ecx, dword [str._r_____r____]
lea edi, [eax + edx]
mov eax, 0x3e13b50f
imul edi, edi, 0x670b79
imul ecx
imul ecx, ecx, 0x640b17
sar edx, 0x14
add edi, edx
mov ebx, edx
mov edx, dword [0x45cbe4]
mov eax, 0x1b2eb4bf
imul edx
sar edx, 0x14
mov eax, edx
shr eax, 0x1f
add eax, edx
shr ebx, 0x1f
add ebx, edi
mov edi, dword [0x45cbd8]
sub ebx, eax
mov eax, 0x7a2fd6e1
imul edi
sar edx, 0x16
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ebx, eax
mov eax, 0xa3c4e0d7
imul edi
add edx, edi
sar edx, 0x16
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ebx, eax
mov eax, dword [esp + 0x2c]
add ebx, ecx
mov dword [0x45cbe4], ebx
cmp dword [eax + 0x28], 4
jne 0x4094dc
mov byte [esp + 0x17], 1
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx]
push eax
push ecx
call dword [edx + 0x4c]
mov ebx, dword [0x45cbd0]
mov eax, dword [0x45cbd8]
mov ecx, dword [0x45cbe4]
lea ebp, [ebx + eax]
imul ebp, ebp, 0x5643ad
mov edx, ecx
imul edx, edx, 0x41d422
sub ebp, edx
mov edi, dword [0x45cbc8]
mov eax, 0x3d3e7a09
imul dword [str._r_____r____]
sar edx, 0x15
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ebp, eax
mov eax, 0xa3c4e0d7
imul edi
add edx, edi
sar edx, 0x16
add ebp, edx
mov eax, edx
mov edx, ebx
imul edx, edx, 0x640b17
shr eax, 0x1f
add eax, ebp
sub eax, edx
mov ebp, eax
mov eax, 0x4f7fd81
imul edi
sar edx, 0x11
mov eax, edx
shr eax, 0x1f
add ebp, edx
add eax, ebp
mov dword [0x45cbe8], eax
mov al, byte [esp + 0x17]
test al, al
je 0x4098cf
mov eax, 0x2900b7f9
imul ecx
sar edx, 0x14
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov eax, 0x3e38df13
imul ecx, ecx, 0x41d423
imul ebx
sar edx, 0x14
mov edi, edx
shr edi, 0x1f
add edi, edx
mov eax, 0x5ef6c237
imul ebx
sar edx, 0x15
mov ebp, edx
shr ebp, 0x1f
add ebp, edx
mov eax, 0x3d3e7a09
imul ebx
sar edx, 0x15
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edx, [eax + ebp]
add edx, edi
imul edx, edx, 0x41d422
mov ebx, edx
mov edx, dword [0x45cbc8]
imul edx, edx, 0x690c5484
add ebx, edx
sub ebx, ecx
mov edx, ebx
mov ebx, dword [0x45cbe0]
add edx, eax
mov ecx, ebx
imul ecx, ecx, 0x38b03af8
add ecx, edx
add ecx, ebp
add ecx, edi
mov edi, dword [0x45cbe8]
mov eax, 0xa1093dc9
imul edi
mov ebp, edi
sar edx, 0x15
imul ebp, ebp, 0x41d422
mov eax, edx
shr eax, 0x1f
add eax, edx
sub eax, ebp
mov ebp, eax
mov eax, 0x6262bd7d
imul edi
mov dword [0x45cbc8], ecx
imul ecx, ecx, 0x640b17
sar edx, 0x15
mov edi, edx
add ebp, edx
shr edi, 0x1f
add edi, ebp
add edi, ecx
mov ecx, dword [0x45cbd4]
mov eax, 0xa3c4e0d7
imul ecx
add edx, ecx
sar edx, 0x16
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov eax, 0x4f7fd81
imul ebx
sar edx, 0x11
mov eax, edx
sub edi, ecx
shr eax, 0x1f
mov dword [esp + 0x24], 0
add edi, edx
imul ebx, ebx, 0x670b79
add eax, edi
add eax, ebx
lea edx, [esp + 0x20]
push edx
mov dword [0x45cbd8], eax
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
push 0
push eax
call dword [ecx + 0x14]
test eax, eax
jl 0x4098bd
lea esp, [esp]
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
lea edx, [esp + 0x30]
push edx
push 1
lea edx, [esp + 0x18]
push edx
mov edx, dword [esp + 0x2c]
mov edx, dword [edx]
push edx
push eax
call dword [ecx + 0x1c]
test eax, eax
jl 0x40979f
cmp dword [esp + 0x30], 1
jb 0x40979f
mov ecx, dword [0x45cbe8]
mov eax, 0xa1093dc9
imul ecx
sar edx, 0x15
mov eax, edx
shr eax, 0x1f
add eax, edx
mov ebx, eax
mov edi, ecx
imul edi, edi, 0x41d422
mov eax, 0x6262bd7d
imul ecx
mov ecx, dword [0x45cbc8]
imul ecx, ecx, 0x640b17
sar edx, 0x15
sub ebx, edi
mov edi, edx
add ebx, edx
shr edi, 0x1f
add edi, ebx
add edi, ecx
mov ecx, dword [0x45cbd4]
mov eax, 0xa3c4e0d7
imul ecx
add edx, ecx
mov ecx, dword [0x45cbe0]
sar edx, 0x16
mov eax, edx
shr eax, 0x1f
add eax, edx
sub edi, eax
mov eax, 0x4f7fd81
imul ecx
imul ecx, ecx, 0x670b79
sar edx, 0x11
mov eax, edx
shr eax, 0x1f
add edi, edx
add eax, edi
add eax, ecx
mov ecx, dword [esp + 0x10]
push ecx
lea ecx, [esp + 0x38]
mov dword [0x45cbd8], eax
call fcn.00409090
mov edi, eax
mov edx, dword [esp + 0x20]
mov eax, dword [edx]
push eax
lea ecx, [esi + 0x18]
mov byte [esp + 0x5c], 3
call fcn.00408ac0
push edi
mov ecx, eax
call fcn.00408630
mov eax, dword [esp + 0x34]
add eax, 0xfffffff0
mov byte [esp + 0x58], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x409794
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x10]
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov ecx, dword [0x45cbe4]
mov edi, dword [0x45cbc8]
mov eax, 0x2900b7f9
imul edi, edi, 0x41d422
imul ecx
sar edx, 0x14
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub edi, ecx
mov ecx, dword [0x45cbd0]
mov eax, 0x3e38df13
imul ecx
sar edx, 0x14
add edi, edx
mov ebx, edx
shr ebx, 0x1f
add ebx, edi
mov edi, dword [0x45cbe0]
mov ebp, dword [esp + 0x24]
mov edx, edi
imul edx, edx, 0x32d358
sub ebx, edx
mov eax, 0x5ef6c237
imul ecx
sar edx, 0x15
add ebx, edx
inc ebp
mov dword [esp + 0x24], ebp
mov ebp, edx
mov eax, 0x3d3e7a09
imul ecx
sar edx, 0x15
mov ecx, edx
shr ebp, 0x1f
add ebp, ebx
add ebp, edx
shr ecx, 0x1f
add ecx, ebp
mov ebp, dword [0x45cbe8]
mov eax, 0xa1093dc9
imul ebp
sar edx, 0x15
mov ebx, ebp
imul ebx, ebx, 0x41d422
mov eax, edx
shr eax, 0x1f
add eax, edx
sub eax, ebx
mov dword [esp + 0x1c], eax
mov eax, 0x6262bd7d
imul ebp
mov eax, dword [esp + 0x1c]
mov dword [0x45cbc8], ecx
imul ecx, ecx, 0x640b17
sar edx, 0x15
add eax, edx
mov ebx, edx
shr ebx, 0x1f
add ebx, eax
add ebx, ecx
mov ecx, dword [0x45cbd4]
mov eax, 0xa3c4e0d7
imul ecx
add edx, ecx
sar edx, 0x16
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov eax, 0x4f7fd81
imul edi
imul edi, edi, 0x670b79
sar edx, 0x11
sub ebx, ecx
mov eax, edx
shr eax, 0x1f
add ebx, edx
add eax, ebx
add eax, edi
mov dword [0x45cbd8], eax
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
lea edx, [esp + 0x20]
push edx
mov edx, dword [esp + 0x28]
push edx
push eax
call dword [ecx + 0x14]
test eax, eax
jge 0x409690
mov ecx, dword [0x45cbe4]
mov ebx, dword [0x45cbd0]
mov edi, dword [0x45cbc8]
mov eax, dword [0x45cbd8]
imul ecx, ecx, 0x41d422
lea ebp, [ebx + eax]
imul ebx, ebx, 0x640b17
imul ebp, ebp, 0x5643ad
mov eax, 0x3d3e7a09
imul dword [str._r_____r____]
sub ebp, ecx
sar edx, 0x15
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov eax, 0xa3c4e0d7
imul edi
sub ebp, ecx
add edx, edi
sar edx, 0x16
mov ecx, edx
add ebp, edx
mov eax, 0x4f7fd81
imul edi
shr ecx, 0x1f
add ecx, ebp
sar edx, 0x11
sub ecx, ebx
mov eax, edx
shr eax, 0x1f
add ecx, edx
add eax, ecx
mov dword [0x45cbe8], eax
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov ebp, dword [0x45cbd4]
mov ecx, dword [0x45cbdc]
mov edi, dword [0x45cbe0]
mov ebx, dword [0x45cbcc]
imul ecx, ecx, 0x63e546
mov eax, dword [0x45cbe8]
imul eax, eax, 0x53439e
mov edx, ebx
imul edx, edx, 0x5643ad
add ecx, edx
add ecx, eax
mov eax, 0x1b2eb4bf
imul ebp
sar edx, 0x14
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ecx, eax
mov eax, 0x1b2eb4bf
imul ebx
sar edx, 0x14
add ecx, edx
mov eax, edx
shr eax, 0x1f
add eax, ecx
mov dword [esp + 0x1c], eax
mov eax, 0x7a2fd6e1
imul ebx
mov eax, dword [esp + 0x1c]
sar edx, 0x16
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub eax, ecx
mov ecx, eax
mov eax, 0xa3c4e0d7
imul ebp
add edx, ebp
sar edx, 0x16
mov eax, edx
shr eax, 0x1f
add ecx, edx
add eax, ecx
mov dword [str._r_____r____], eax
mov al, byte [esp + 0x17]
test al, al
jne 0x4099fe
mov ecx, dword [0x451a70]
mov dword [esi + 8], ecx
mov edx, dword [0x451a74]
mov dword [esi + 0xc], edx
mov eax, dword [0x451a78]
mov dword [esi + 0x10], eax
mov ecx, dword [0x451a7c]
mov dword [esi + 0x14], ecx
mov edi, dword [0x45cbe0]
mov ecx, dword [0x45cbe4]
imul edi, edi, 0x32d358
mov ebx, dword [0x45cbc8]
mov eax, 0x2900b7f9
imul ebx, ebx, 0x41d422
imul ecx
mov ecx, dword [0x45cbd0]
sar edx, 0x14
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ebx, eax
mov eax, 0x3e38df13
imul ecx
sar edx, 0x14
add ebx, edx
mov ebp, edx
mov eax, 0x5ef6c237
imul ecx
shr ebp, 0x1f
add ebp, ebx
sub ebp, edi
sar edx, 0x15
add ebp, edx
mov edi, edx
mov eax, 0x3d3e7a09
imul ecx
shr edi, 0x1f
sar edx, 0x15
add edi, ebp
mov ecx, edx
add edi, edx
shr ecx, 0x1f
add ecx, edi
lea eax, [esi + 0x50]
xor edi, edi
cmp eax, edi
mov dword [0x45cbc8], ecx
je 0x409a9a
mov ecx, dword [esp + 0x28]
cmp ecx, edi
mov ebx, dword [eax]
mov dword [eax], edi
je 0x409a90
mov edx, dword [ecx]
push eax
push 0x44d414
push ecx
call dword [edx]
cmp ebx, edi
je 0x409a9a
mov eax, dword [ebx]
push ebx
call dword [eax + 8]
mov dword [esi + 0x54], edi
mov ecx, dword [0x45cbd4]
mov eax, 0x2900b7f9
imul ecx
sar edx, 0x14
mov ebx, edx
mov eax, dword [0x45cbe0]
shr ebx, 0x1f
imul eax, eax, 0x5643ad
add ebx, edx
mov edx, dword [0x45cbe4]
imul edx, edx, 0x41d422
add ebx, edx
mov edx, dword [0x45cbe8]
add ebx, eax
imul edx, edx, 0x53439e
sub ebx, edx
mov eax, 0xa3c4e0d7
imul ecx
add edx, ecx
mov ecx, dword [0x45cbcc]
sar edx, 0x16
add ebx, edx
mov ebp, edx
mov eax, 0x4f7fd81
imul ecx
sar edx, 0x11
mov eax, edx
shr eax, 0x1f
shr ebp, 0x1f
add ebp, ebx
add ebp, edx
mov edx, dword [str._r_____r____]
add eax, ebp
sub eax, edx
add eax, 0x41fb8b
mov dword [0x45cbcc], eax
mov dword [esi + 0x58], edi
mov dword [esi + 0x5c], edi
mov ecx, dword [0x45cbd0]
mov edi, dword [0x45cbc8]
mov eax, 0x3e13b50f
imul edi, edi, 0x63e546
imul ecx
sar edx, 0x14
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub edi, ecx
mov ecx, dword [0x45cbd8]
mov eax, 0x3e38df13
imul ecx
imul ecx, ecx, 0x96af7c
sar edx, 0x14
add edi, edx
mov ebx, edx
mov edx, dword [0x45cbe8]
imul edx, edx, 0x53439e
shr ebx, 0x1f
add ebx, edi
add ebx, edx
add ebx, ecx
mov ecx, dword [0x45cbdc]
mov eax, 0x1b2eb4bf
imul ecx
mov ecx, dword [0x45cbe4]
sar edx, 0x14
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ebx, eax
pop edi
sub ebx, ecx
mov ecx, dword [esp + 0x4c]
mov eax, esi
pop esi
sub ebx, 0x41d422
pop ebp
mov dword [0x45cbd0], ebx
mov dword fs:[0], ecx
pop ebx
mov ecx, dword [esp + 0x3c]
xor ecx, esp
call fcn.0042fd0d
add esp, 0x4c
ret 0x14