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

Disassembly:
push 0xffffffffffffffff
push 0x44a729
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 + 0x5c]
push ebp
mov ebp, dword [esp + 0x5c]
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 + 0x34], ecx
lea ecx, [esi + 0x18]
push 0x11
mov dword [esp + 0x4c], esi
mov dword [esp + 0x5c], eax
mov dword [esi], 0x44d1b8
call fcn.00408430
mov dword [esp + 0x58], 0
call fcn.00442d10
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 [0x45cbcc]
mov eax, ecx
imul eax, eax, 0xdc65
mov dword [esp + 0x10], eax
mov eax, 0x5fa6246b
imul ecx
mov ecx, dword [esp + 0x10]
sar edx, 0xf
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [0x45cbe8]
sub ecx, eax
imul edx, edx, 0xd60e
mov eax, dword [0x45cbdc]
imul eax, eax, 0x100de
add ecx, edx
add ecx, eax
mov eax, 0x2aa871e5
imul dword [0x45cbd4]
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ecx, eax
mov eax, 0x2aa871e5
imul dword [0x45cbcc]
sar edx, 0xe
add ecx, edx
mov eax, edx
shr eax, 0x1f
add eax, ecx
mov dword [esp + 0x10], eax
mov eax, 0x1006124d
imul dword [0x45cbd4]
mov eax, dword [esp + 0x10]
sar edx, 0xc
mov ecx, edx
add eax, edx
shr ecx, 0x1f
add ecx, eax
lea eax, [esi + 8]
mov dword [str._r_____r____], ecx
mov byte [esp + 0x58], 2
mov dword [esi + 4], 1
mov dword [eax], edi
mov edx, dword [esp + 0x48]
mov dword [eax + 4], ebp
mov dword [eax + 8], ebx
mov dword [eax + 0xc], edx
mov eax, dword [0x45cbe0]
mov ecx, dword [0x45cbe8]
imul eax, eax, 0xdc65
mov edx, dword [0x45cbe4]
imul ecx, ecx, 0xd60e
sub eax, ecx
imul edx, edx, 0xa88a
mov ecx, dword [0x45cbcc]
add eax, edx
mov dword [esp + 0x10], eax
mov eax, 0x3e77639f
imul ecx
mov eax, dword [esp + 0x10]
sar edx, 0xe
add eax, edx
mov ecx, edx
shr ecx, 0x1f
add ecx, eax
mov eax, 0x7f915fef
imul dword [0x45cbd4]
sar edx, 0xf
add ecx, edx
mov eax, edx
shr eax, 0x1f
add eax, ecx
mov ecx, eax
mov eax, 0x1006124d
imul dword [0x45cbd4]
sar edx, 0xc
add ecx, edx
mov eax, edx
mov edx, dword [str._r_____r____]
shr eax, 0x1f
add eax, ecx
sub eax, edx
mov edx, dword [esp + 0x24]
add eax, 0xa8e3
push edx
mov edx, dword [esp + 0x4c]
mov dword [0x45cbcc], eax
lea eax, [esp + 0x1c]
push eax
sub esp, 0x10
mov ecx, esp
mov dword [ecx], edi
mov dword [ecx + 4], ebp
mov dword [ecx + 8], ebx
mov byte [esp + 0x2f], 0
mov dword [ecx + 0xc], edx
call fcn.00405530
mov ecx, dword [0x45cbdc]
mov edi, dword [str._r_____r____]
mov ebx, eax
mov eax, dword [0x45cbd8]
add eax, edi
imul eax, eax, 0x100de
mov edx, ecx
imul edx, edx, 0xdc65
add eax, edx
mov dword [esp + 0x28], eax
mov eax, 0x3e77639f
imul ecx
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x28]
sub edx, eax
mov eax, 0x1006124d
mov dword [esp + 0x28], edx
imul ecx
sar edx, 0xc
mov eax, edx
shr eax, 0x1f
add esp, 0x18
add eax, edx
mov ebp, dword [0x45cbe0]
imul edi, edi, 0xff9f
mov edx, dword [esp + 0x10]
add eax, ebp
add eax, edx
test ebx, ebx
lea edi, [edi + eax - 0xa88a]
mov dword [0x45cbd4], edi
jl 0x4098df
mov edx, dword [0x45cbcc]
imul ecx, ecx, 0xa88a
imul ebp, ebp, 0x15433
mov eax, dword [0x45cbd0]
lea edi, [eax + edx]
imul edi, edi, 0x15696
mov eax, 0x7f915fef
imul edx
sar edx, 0xf
add edi, ebp
add edi, ecx
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub edi, ecx
mov ecx, dword [0x45cbe4]
mov eax, 0x2aa871e5
imul ecx
sar edx, 0xe
mov ebx, edx
add edi, edx
mov eax, 0x1006124d
imul ecx
sar edx, 0xc
shr ebx, 0x1f
mov eax, edx
add ebx, edi
shr eax, 0x1f
add ebx, edx
add eax, ebx
mov dword [0x45cbdc], eax
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
lea edx, [esp + 0x34]
push edx
push eax
call dword [ecx + 0xc]
test eax, eax
jl 0x40946c
mov eax, dword [0x45cbd4]
mov ecx, dword [0x45cbc8]
mov edi, dword [0x45cbd8]
lea ebx, [ecx + eax]
mov ecx, dword [str._r_____r____]
imul ebx, ebx, 0x10649
mov eax, 0x5fa6246b
imul edi
sar edx, 0xf
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ebx, eax
mov eax, 0x1840c0e3
imul ecx
imul ecx, ecx, 0xff9f
sar edx, 0xc
add ebx, edx
mov ebp, edx
mov edx, dword [0x45cbe4]
mov eax, 0x2aa871e5
imul edx
sar edx, 0xe
shr ebp, 0x1f
mov eax, edx
shr eax, 0x1f
add eax, edx
add ebp, ebx
sub ebp, eax
mov eax, 0x1006124d
imul edi
sar edx, 0xc
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ebp, eax
mov eax, dword [esp + 0x34]
add ebp, ecx
mov dword [0x45cbe4], ebp
cmp dword [eax + 0x28], 4
jne 0x409461
mov byte [esp + 0x17], 1
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx]
push eax
push ecx
call dword [edx + 0x4c]
mov ebp, dword [0x45cbd0]
mov eax, dword [0x45cbd8]
lea edi, [eax + ebp]
mov ebx, dword [0x45cbe4]
imul edi, edi, 0xdc65
mov eax, 0x6051edb
imul dword [str._r_____r____]
sar edx, 0xb
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov edx, ebx
imul edx, edx, 0xa88a
sub edi, ecx
mov ecx, dword [0x45cbc8]
sub edi, edx
mov eax, 0x3e77639f
imul ecx
sar edx, 0xe
add edi, edx
mov eax, edx
shr eax, 0x1f
add eax, edi
mov dword [esp + 0x10], eax
mov eax, 0x1006124d
imul ecx
mov eax, dword [esp + 0x10]
sar edx, 0xc
add eax, edx
mov edi, edx
shr edi, 0x1f
add edi, eax
mov eax, ebp
imul eax, eax, 0xff9f
sub edi, eax
mov al, byte [esp + 0x17]
test al, al
mov dword [0x45cbe8], edi
je 0x409861
mov eax, 0x94adc77f
imul ecx, ecx, 0xa88a
imul ebp
add edx, ebp
sar edx, 0xf
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
mov eax, 0x6051edb
imul ebp
sar edx, 0xb
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x10], eax
mov eax, 0xc26c7c39
imul ebp
add edx, ebp
sar edx, 0xf
mov ebp, edx
shr ebp, 0x1f
add ebp, edx
mov eax, 0x7f915fef
imul dword [0x45cbe4]
sar edx, 0xf
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [0x45cbe0]
imul eax, eax, 0xa88b
imul edx, edx, 0x8088
sub ecx, edx
add ecx, ebp
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x10]
add ecx, edx
add ecx, ebx
imul ecx, ecx, 0xa88a
sub ecx, eax
sub ecx, dword [esp + 0x1c]
add ecx, ebp
add ecx, edx
mov eax, 0x94adc77f
imul edi
add edx, edi
sar edx, 0xf
mov eax, edx
shr eax, 0x1f
add eax, edx
add ecx, ebx
mov ebx, eax
mov eax, 0x264545a3
imul edi
imul edi, edi, 0xa88a
sar edx, 0xd
mov eax, edx
shr eax, 0x1f
add eax, edx
mov ebp, eax
sub ebp, ebx
sub ebp, edi
mov edi, dword [0x45cbe0]
mov eax, 0x3e77639f
imul edi
imul edi, edi, 0x10649
mov dword [0x45cbc8], ecx
imul ecx, ecx, 0xff9f
sar edx, 0xe
mov ebx, edx
shr ebx, 0x1f
add ebp, edx
add ebx, ebp
add ebx, edi
add ebx, ecx
mov ecx, dword [0x45cbd4]
mov eax, 0x1006124d
imul ecx
sar edx, 0xc
mov dword [esp + 0x20], 0
mov ecx, edx
mov eax, dword [esp + 0x18]
shr ecx, 0x1f
add ecx, edx
sub ebx, ecx
lea ecx, [esp + 0x1c]
push ecx
push 0
mov dword [0x45cbd8], ebx
mov edx, dword [eax]
push eax
call dword [edx + 0x14]
test eax, eax
jl 0x40984f
mov eax, dword [esp + 0x18]
mov edx, dword [eax]
lea ecx, [esp + 0x30]
push ecx
push 1
lea ecx, [esp + 0x18]
push ecx
mov ecx, dword [esp + 0x28]
mov ecx, dword [ecx]
push ecx
push eax
call dword [edx + 0x1c]
test eax, eax
jl 0x409732
cmp dword [esp + 0x30], 1
jb 0x409732
mov ecx, dword [0x45cbe8]
mov eax, 0x94adc77f
imul ecx
add edx, ecx
sar edx, 0xf
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edi, eax
mov eax, 0x264545a3
imul ecx
imul ecx, ecx, 0xa88a
sar edx, 0xd
mov eax, edx
shr eax, 0x1f
add eax, edx
mov ebx, eax
sub ebx, edi
sub ebx, ecx
mov ecx, dword [0x45cbe0]
mov eax, 0x3e77639f
imul ecx
imul ecx, ecx, 0x10649
sar edx, 0xe
mov edi, edx
shr edi, 0x1f
add ebx, edx
add edi, ebx
add edi, ecx
mov ecx, dword [0x45cbc8]
imul ecx, ecx, 0xff9f
add edi, ecx
mov ecx, dword [0x45cbd4]
mov eax, 0x1006124d
imul ecx
mov ecx, dword [esp + 0x10]
sar edx, 0xc
mov eax, edx
shr eax, 0x1f
add eax, edx
sub edi, eax
push ecx
lea ecx, [esp + 0x2c]
mov dword [0x45cbd8], edi
call fcn.00409020
mov edi, eax
mov edx, dword [esp + 0x1c]
mov eax, dword [edx]
push eax
lea ecx, [esi + 0x18]
mov byte [esp + 0x5c], 3
call fcn.00408a40
push edi
mov ecx, eax
call fcn.004085c0
mov eax, dword [esp + 0x28]
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 0x409727
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 [0x45cbd0]
mov eax, 0x94adc77f
imul ecx
add edx, ecx
sar edx, 0xf
mov edi, edx
shr edi, 0x1f
add edi, edx
mov eax, 0x6051edb
imul ecx
sar edx, 0xb
add edi, edx
mov ebx, edx
mov edx, dword [0x45cbc8]
imul edx, edx, 0xa88a
shr ebx, 0x1f
add ebx, edi
add ebx, edx
mov ebp, dword [esp + 0x20]
mov eax, 0xc26c7c39
imul ecx
add edx, ecx
sar edx, 0xf
add ebx, edx
mov ecx, edx
mov edx, dword [0x45cbe4]
mov edi, dword [0x45cbe8]
mov eax, 0x7f915fef
imul edx
sar edx, 0xf
mov eax, edx
shr eax, 0x1f
add eax, edx
inc ebp
mov dword [esp + 0x20], ebp
mov ebp, dword [0x45cbe0]
shr ecx, 0x1f
add ecx, ebx
sub ecx, eax
mov edx, ebp
imul edx, edx, 0x8088
sub ecx, edx
mov eax, 0x94adc77f
imul edi
add edx, edi
sar edx, 0xf
mov eax, edx
shr eax, 0x1f
add eax, edx
mov ebx, eax
mov eax, 0x264545a3
imul edi
imul edi, edi, 0xa88a
sar edx, 0xd
mov eax, edx
shr eax, 0x1f
add eax, edx
sub eax, ebx
sub eax, edi
mov ebx, eax
mov eax, 0x3e77639f
imul ebp
imul ebp, ebp, 0x10649
mov dword [0x45cbc8], ecx
imul ecx, ecx, 0xff9f
sar edx, 0xe
mov edi, edx
shr edi, 0x1f
add ebx, edx
add edi, ebx
add edi, ebp
add edi, ecx
mov ecx, dword [0x45cbd4]
mov eax, 0x1006124d
imul ecx
sar edx, 0xc
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub edi, ecx
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0x1c]
push ecx
mov ecx, dword [esp + 0x24]
push ecx
mov dword [0x45cbd8], edi
mov edx, dword [eax]
push eax
call dword [edx + 0x14]
test eax, eax
jge 0x409622
mov ebp, dword [0x45cbd0]
mov ecx, dword [0x45cbc8]
mov ebx, dword [0x45cbe4]
mov edx, dword [0x45cbd8]
imul ebx, ebx, 0xa88a
lea edi, [edx + ebp]
imul ebp, ebp, 0xff9f
mov eax, 0x6051edb
imul edi, edi, 0xdc65
imul dword [str._r_____r____]
sar edx, 0xb
mov eax, edx
shr eax, 0x1f
add eax, edx
sub edi, eax
mov eax, 0x3e77639f
imul ecx
sub edi, ebx
sar edx, 0xe
mov ebx, edx
add edi, edx
mov eax, 0x1006124d
imul ecx
mov eax, dword [esp + 0x18]
sar edx, 0xc
shr ebx, 0x1f
mov ecx, edx
add ebx, edi
shr ecx, 0x1f
add ebx, edx
add ecx, ebx
sub ecx, ebp
mov dword [0x45cbe8], ecx
mov edx, dword [eax]
push eax
call dword [edx + 8]
mov edi, dword [0x45cbd4]
mov ecx, dword [0x45cbdc]
mov ebp, dword [0x45cbe0]
mov edx, dword [0x45cbcc]
imul ecx, ecx, 0x100de
mov ebx, edx
mov eax, 0x5fa6246b
imul ebx, ebx, 0xdc65
imul edx
sar edx, 0xf
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [0x45cbe8]
sub ebx, eax
imul edx, edx, 0xd60e
add ebx, edx
mov eax, 0x2aa871e5
imul edi
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add eax, edx
add ebx, ecx
sub ebx, eax
mov eax, 0x2aa871e5
imul dword [0x45cbcc]
sar edx, 0xe
add ebx, edx
mov ecx, edx
mov eax, 0x1006124d
imul edi
shr ecx, 0x1f
sar edx, 0xc
add ecx, ebx
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 0x409989
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 ebp, dword [0x45cbe0]
mov ecx, dword [0x45cbd0]
imul ebp, ebp, 0x8088
mov eax, 0x94adc77f
imul ecx
add edx, ecx
sar edx, 0xf
mov edi, edx
shr edi, 0x1f
add edi, edx
mov eax, 0x6051edb
imul ecx
sar edx, 0xb
add edi, edx
mov ebx, edx
mov edx, dword [0x45cbc8]
imul edx, edx, 0xa88a
shr ebx, 0x1f
add ebx, edi
add ebx, edx
mov eax, 0xc26c7c39
imul ecx
add edx, ecx
mov ecx, dword [0x45cbe4]
sar edx, 0xf
add ebx, edx
mov edi, edx
mov eax, 0x7f915fef
imul ecx
sar edx, 0xf
shr edi, 0x1f
mov eax, edx
shr eax, 0x1f
add edi, ebx
add eax, edx
sub edi, eax
sub edi, ebp
mov dword [0x45cbc8], edi
lea eax, [esi + 0x50]
xor edi, edi
cmp eax, edi
je 0x409a29
mov ecx, dword [esp + 0x24]
cmp ecx, edi
mov ebx, dword [eax]
mov dword [eax], edi
je 0x409a1f
mov edx, dword [ecx]
push eax
push 0x44d414
push ecx
call dword [edx]
cmp ebx, edi
je 0x409a29
mov eax, dword [ebx]
push ebx
call dword [eax + 8]
mov dword [esi + 0x54], edi
mov ebx, dword [0x45cbe0]
mov ecx, dword [0x45cbe8]
imul ebx, ebx, 0xdc65
mov edx, dword [0x45cbe4]
imul ecx, ecx, 0xd60e
imul edx, edx, 0xa88a
sub ebx, ecx
mov ecx, dword [0x45cbcc]
add ebx, edx
mov eax, 0x3e77639f
imul ecx
mov ecx, dword [0x45cbd4]
sar edx, 0xe
add ebx, edx
mov ebp, edx
mov eax, 0x7f915fef
imul ecx
sar edx, 0xf
shr ebp, 0x1f
add ebp, ebx
add ebp, edx
mov ebx, edx
mov eax, 0x1006124d
imul ecx
sar edx, 0xc
shr ebx, 0x1f
add ebx, ebp
add ebx, edx
mov eax, edx
mov edx, dword [str._r_____r____]
shr eax, 0x1f
add eax, ebx
sub eax, edx
add eax, 0xa8e3
mov dword [0x45cbcc], eax
mov dword [esi + 0x58], edi
mov dword [esi + 0x5c], edi
mov ecx, dword [0x45cbd0]
mov edi, dword [0x45cbe8]
mov eax, 0x1840c0e3
imul edi, edi, 0xd60e
imul ecx
sar edx, 0xc
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub edi, ecx
mov ecx, dword [0x45cbd8]
mov eax, 0xc26c7c39
imul ecx
add edx, ecx
imul ecx, ecx, 0x18014
sar edx, 0xf
add edi, edx
mov ebx, edx
mov edx, dword [0x45cbc8]
imul edx, edx, 0x100de
shr ebx, 0x1f
add ebx, edi
add ebx, edx
add ebx, ecx
mov ecx, dword [0x45cbdc]
mov eax, 0x2aa871e5
imul ecx
mov ecx, dword [0x45cbe4]
sar edx, 0xe
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, 0xa88a
pop ebp
mov dword [0x45cbd0], ebx
mov dword fs:[0], ecx
pop ebx
mov ecx, dword [esp + 0x3c]
xor ecx, esp
call fcn.0042fa4d
add esp, 0x4c
ret 0x14