Function at 0x411460
Capabilities:
Access peb ldr_data
Resolve function by parsing pe exports

Disassembly:
push esi
push edi
push ebx
push ebp
sub esp, 0x190
mov ecx, edx
mov dword [esp + 0x54], edx
xor edx, edx
inc edx
mov dword [esp], eax
call fcn.00410328
test eax, eax
jne 0x411bf5
mov dword [esp + 0x2c], eax
cmp dword [0x41d208], 0
je 0x4119cd
cmp byte [0x41d2e4], 0
jne 0x4119cd
xor eax, eax
mov dword [esp + 0x30], eax
push eax
mov byte [0x41d2e4], 1
lea ecx, [esp + 0x38]
call fcn.0040f5a8
push 0x1c
lea ecx, [esp + 0x168]
call fcn.0040f5a8
push 0
lea ecx, [esp + 0x168]
call fcn.0040f4e0
mov dword [esp + 0x58], eax
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov ecx, dword [eax + 0xc]
mov edx, dword [ecx + 0xc]
mov ebx, dword [ecx + 0x10]
mov dword [esp + 0x48], edx
mov dword [esp + 0x60], ebx
jmp 0x411502
lea ecx, [esp + 8]
mov edx, dword [eax]
mov dword [ecx + 0x40], edx
call fcn.0040f678
mov ebx, dword [esp + 0x48]
xor edx, edx
mov eax, dword [ebx + 0x18]
mov dword [esp + 0x50], eax
mov ebx, dword [eax + 0x3c]
mov dword [esp + 4], edx
add ebx, eax
push edx
lea ecx, [esp + 0xc]
call fcn.0040f5a8
movzx ebp, word [ebx + 0x14]
movzx eax, word [ebx + 6]
mov dword [esp + 0x5c], eax
lea ebp, [ebx + ebp + 0x18]
test eax, eax
jle 0x41160a
xor ebx, ebx
test dword [ebp + 0x24], 0x20000000
je 0x4115fc
mov esi, dword [ebp + 0xc]
push eax
push eax
add esi, dword [esp + 0x58]
mov eax, 0xfe338407
mov edx, 0x790529cb
add esi, dword [ebp + 8]
call fcn.00413044
mov edx, eax
test edx, edx
je 0x41157d
xor eax, eax
push eax
push 0x1c
push dword [esp + 0x60]
push eax
push esi
push 0xffffffffffffffff
call edx
test eax, eax
jl 0x4115fc
mov esi, dword [esp + 0x58]
mov ecx, dword [esp + 0x50]
mov edx, dword [ebp + 0xc]
mov eax, dword [esi]
sub eax, ecx
sub eax, edx
add edx, ecx
mov ecx, dword [esp + 0x48]
mov edi, dword [ebp + 8]
mov dword [esp + 0x28], edx
add edx, edi
sub edi, dword [esi + 0xc]
mov esi, dword [ecx + 0x30]
sub eax, edi
mov dword [esp + 0x24], ebp
mov dword [esp + 0x20], esi
test dl, 3
je 0x4115b9
inc edx
dec eax
test dl, 3
jne 0x4115b2
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], edx
lea ecx, [esp + 8]
call fcn.0040f4f0
add eax, 0x14
push eax
lea ecx, [esp + 0xc]
call fcn.0040f84c
lea ecx, [esp + 8]
call fcn.0040f4f0
add eax, 0xffffffec
push eax
lea ecx, [esp + 0xc]
call fcn.0040f4e0
mov edi, eax
lea esi, [esp + 0x18]
push 5
pop ecx
rep movsd dword es:[edi], dword [esi]
inc dword [esp + 4]
inc ebx
add ebp, 0x28
cmp ebx, dword [esp + 0x5c]
jl 0x41153c
mov eax, dword [esp + 4]
mov dword [esp + 0x44], eax
cmp eax, 1
jle 0x411670
mov dword [esp + 0x4c], 1
push 0x14
pop ebp
lea eax, [ebp - 0x14]
push eax
lea ecx, [esp + 0xc]
call fcn.0040f4e0
mov ebx, eax
push ebp
lea ecx, [esp + 0xc]
call fcn.0040f4e0
mov ecx, eax
mov esi, dword [ebx]
mov eax, dword [ecx]
cmp eax, esi
jb 0x411656
mov edx, dword [ebx + 4]
add edx, esi
cmp eax, edx
ja 0x411656
mov eax, dword [ecx + 0x10]
sub eax, esi
mov dword [ebx + 4], eax
mov eax, dword [esp + 0x4c]
add ebp, 0x14
inc eax
mov dword [esp + 0x4c], eax
cmp eax, dword [esp + 0x44]
jl 0x411622
mov eax, dword [esp + 4]
mov dword [esp + 0x44], eax
cmp dword [esp + 0x44], 0
jle 0x4116c8
xor ebp, ebp
xor ebx, ebx
push ebx
lea ecx, [esp + 0xc]
call fcn.0040f4e0
mov esi, eax
lea ecx, [esp + 0x34]
call fcn.0040f4f0
add eax, 0x14
push eax
lea ecx, [esp + 0x38]
call fcn.0040f84c
lea ecx, [esp + 0x34]
call fcn.0040f4f0
add eax, 0xffffffec
push eax
lea ecx, [esp + 0x38]
call fcn.0040f4e0
mov edi, eax
push 5
pop ecx
rep movsd dword es:[edi], dword [esi]
inc ebp
add ebx, 0x14
inc dword [esp + 0x30]
cmp ebp, dword [esp + 0x44]
jl 0x41167b
mov eax, dword [esp + 0x48]
cmp eax, dword [esp + 0x60]
jne 0x4114f4
lea ecx, [esp + 8]
call fcn.0040f678
lea ecx, [esp + 0x164]
call fcn.0040f678
push 0
lea ecx, [esp + 0x48]
call fcn.0040f5a8
xor eax, eax
mov dword [esp + 0x18], eax
push eax
lea ecx, [esp + 0x20]
call fcn.0040f5a8
mov eax, 0xfe338407
push eax
call fcn.00411d58
mov ebx, eax
lea ecx, [esp + 0x154]
call fcn.00411310
push eax
push eax
mov edx, 0xfe338407
lea eax, [esp + 0x164]
call fcn.00411c90
lea esi, [esp + 0x178]
push dword [esp + 0x15c]
push esi
lea ecx, [esi - 0x24]
call fcn.0040d058
push 0x80
push 0
push 1
push dword [esp + 0x184]
lea ecx, [esp + 0x114]
call fcn.00415cac
lea ebp, [esp + 0x180]
push 0
push ebp
lea ecx, [ebp - 0x7c]
call fcn.00415ce0
push ebx
push 2
push ebp
lea ecx, [esp + 0xe4]
call fcn.00418de0
mov ecx, ebp
call fcn.0040f678
cmp byte [esp + 0x114], 0
je 0x4117a4
lea ecx, [esp + 0x110]
call fcn.0040bb88
lea ecx, [esp + 0x104]
call fcn.0040d020
mov ecx, esi
call fcn.0040d020
lea ecx, [esp + 0x15c]
call fcn.0040d020
lea ecx, [esp + 0x154]
call fcn.0040d020
push 0xffffffffffffffff
lea ecx, [esp + 0xdc]
call fcn.004190c4
lea edx, [esp + 0xf0]
mov eax, dword [edx]
lea edx, [edx + 4]
mov dword [edx + 0x24], eax
push edx
lea ecx, [edx + 0x28]
call fcn.0040f63c
push 1
lea ecx, [esp + 0x11c]
call fcn.00419088
xor ebx, ebx
mov dword [esp + 0x64], ebx
mov dword [esp + 0x60], ebx
push dword [esp + 0x60]
lea ecx, [esp + 0x38]
call fcn.0040f4e0
mov dword [esp + 0x58], eax
lea ecx, [esp + 0x44]
call fcn.0040f4f0
mov dword [esp + 0x70], eax
mov esi, dword [ebx*4 + 0x41bd40]
push esi
lea ecx, [esp + 0xf4]
call fcn.00419054
mov ebp, eax
test ebp, ebp
je 0x411990
push dword [ebp]
lea ecx, [esp + 0x11c]
call fcn.004187c0
mov edi, eax
mov ebp, dword [ebp]
jmp 0x411862
add edi, 8
cmp ebp, dword [edi]
je 0x41185f
mov eax, dword [edi]
mov dword [esp + 0x74], eax
sub eax, ebp
mov dword [esp + 0x78], eax
test ebx, ebx
jne 0x4118d0
lea ecx, [esp + 0x134]
call fcn.00419114
mov dword [esp + 0x5c], ebp
mov eax, dword [esp + 0x5c]
cmp byte [eax], 0xb8
jne 0x41189a
mov edx, dword [eax + 1]
mov dword [0x41d2e8], edx
jmp 0x4118b8
push dword [esp + 0x74]
lea ecx, [esp + 0x138]
call fcn.004190dc
mov edx, dword [esp + 0x5c]
add edx, eax
mov dword [esp + 0x5c], edx
cmp edx, dword [edi]
jb 0x411886
lea ecx, [esp + 0x144]
call fcn.0040f678
lea ecx, [esp + 0x134]
call fcn.0040f678
lea ecx, [esp + 0x44]
call fcn.0040f4f0
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], esi
push dword [esp + 0x78]
push ebp
lea ecx, [esp + 0x4c]
call fcn.0040f500
lea ecx, [esp + 0x44]
call fcn.0040f4f0
mov edx, dword [esp + 0x58]
cmp eax, dword [edx + 4]
jle 0x41194f
push dword [esp + 0x70]
lea ecx, [esp + 0x48]
call fcn.0040f84c
lea eax, [esp + 0x18]
push eax
mov ecx, dword [eax + 0x40]
lea edx, [eax + 0x2c]
call fcn.00413154
lea ecx, [esp + 0x44]
call fcn.0040f864
lea ecx, [esp + 0x1c]
call fcn.0040f864
mov eax, dword [esp + 0x64]
dec ebx
inc eax
add dword [esp + 0x60], 0x14
mov dword [esp + 0x18], 0
mov dword [esp + 0x64], eax
cmp eax, dword [esp + 0x30]
je 0x41199a
jmp 0x411990
lea ecx, [esp + 0x1c]
call fcn.0040f4f0
add eax, 8
push eax
lea ecx, [esp + 0x20]
call fcn.0040f84c
lea ecx, [esp + 0x1c]
call fcn.0040f4f0
add eax, 0xfffffff8
push eax
lea ecx, [esp + 0x20]
call fcn.0040f4e0
mov edi, eax
lea esi, [esp + 0x68]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
inc dword [esp + 0x18]
cmp ebx, 0x1d
je 0x411c02
inc ebx
cmp ebx, 0x1e
jb 0x41180d
lea ecx, [esp + 0x11c]
call fcn.0040f678
lea ecx, [esp + 0xd8]
call fcn.00418e40
lea ecx, [esp + 0x1c]
call fcn.0040f678
lea ecx, [esp + 0x44]
call fcn.0040f678
lea ecx, [esp + 0x34]
call fcn.0040f678
cmp dword [esp], 0
je 0x411c50
mov eax, dword [esp]
mov ebx, dword [eax + 0x3c]
mov esi, dword [ebx + eax + 0x78]
mov ebp, dword [ebx + eax + 0x7c]
add ebp, esi
mov dword [esp + 0x130], ebp
mov ebp, dword [esi + eax + 0x20]
mov ebx, dword [esi + eax + 0x24]
add ebp, eax
add ebx, eax
cmp dword [esi + eax + 0x18], 0
jbe 0x411be9
mov eax, dword [esp + 0x54]
xor eax, 0x7af3da47
mov dword [esp + 0x12c], 0
mov dword [esp + 0x174], eax
mov ecx, dword [ebp]
xor edx, edx
add ecx, dword [esp]
movsx eax, byte [ecx]
mov byte [esp + 0x58], al
test eax, eax
je 0x411a3f
inc edx
mov al, byte [edx + ecx]
mov byte [esp + edx + 0x58], al
test al, al
jne 0x411a33
lea ecx, [esp + 0x58]
call fcn.00414fd4
cmp eax, dword [esp + 0x174]
je 0x411a71
mov edx, dword [esp]
add ebp, 4
lea ecx, [esp + 0x12c]
mov eax, dword [ecx]
add ebx, 2
inc eax
mov dword [ecx], eax
cmp eax, dword [esi + edx + 0x18]
jb 0x411a20
jmp 0x411be9
mov eax, dword [esp]
mov dword [esp + 0x2c], 0
movzx ecx, word [ebx]
mov edx, dword [esi + eax + 0x1c]
add edx, eax
mov eax, dword [edx + ecx*4]
cmp eax, esi
jb 0x411aee
cmp eax, dword [esp + 0x130]
jae 0x411aee
mov edx, 0x7fffffff
lea eax, [esp + 0x58]
mov ecx, eax
mov dword [eax + 0xd8], eax
call fcn.0040e8d4
lea edx, [esp + 0x12c]
mov word [edx], ax
inc eax
mov word [edx + 2], ax
mov eax, 0xfe338407
mov edx, 0xccbfc9a9
push eax
push eax
call fcn.00413044
mov ecx, eax
test ecx, ecx
je 0x411ae5
lea eax, [esp + 0x2c]
lea edx, [eax + 0x100]
push eax
push 0
push edx
push dword [esp + 0xc]
call ecx
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
jmp 0x411afa
mov edx, dword [esp]
add edx, eax
mov dword [esp], edx
mov dword [esp + 0x2c], edx
cmp dword [esp], 0
je 0x411bf2
mov ebx, 0x41d2ec
mov al, byte [ebx]
or al, byte [0x41d2ed]
je 0x411b45
cmp dword [esp + 0x54], 0x82fffbdc
je 0x411b38
cmp dword [esp + 0x54], 0xdb278333
jne 0x411bf2
mov eax, dword [esp]
mov dword [0x41d210], eax
jmp 0x411bf2
mov eax, dword [esp]
mov dword [0x41d20c], eax
jmp 0x411bf2
mov ebp, dword [0x41d208]
test ebp, ebp
je 0x411c17
mov eax, dword [ebp + 0x1c0]
jmp 0x411b63
mov ebp, eax
mov eax, dword [eax + 0x1c0]
test eax, eax
jne 0x411b5b
xor eax, eax
xor edx, edx
cmp dword [edx + ebp + 8], 0
je 0x411bc5
inc eax
add edx, 0x1c
cmp eax, 0x10
jl 0x411b6b
push 0x1c4
call fcn.004135f4
mov ebx, eax
pop eax
test ebx, ebx
je 0x411ba1
mov ecx, ebx
push 0x10
call fcn.00411c54
mov dword [ebx + 0x1c0], 0
jmp 0x411ba3
xor ebx, ebx
mov edx, dword [esp + 0x2c]
lea eax, [esp + 0x58]
mov ecx, ebx
push eax
mov dword [ebx + 0x14], edx
call fcn.0040dff8
mov eax, dword [esp + 0x54]
mov dword [ebx + 8], eax
mov dword [ebp + 0x1c0], ebx
jmp 0x411be0
add ebp, edx
lea eax, [esp + 0x58]
mov edx, dword [eax - 0x2c]
mov ecx, ebp
push eax
mov dword [ebp + 0x14], edx
call fcn.0040dff8
mov eax, dword [esp + 0x54]
mov dword [ebp + 8], eax
mov edx, dword [esp + 0x2c]
mov dword [esp], edx
jmp 0x411bf2
xor eax, eax
mov dword [esp], eax
mov dword [esp + 0x2c], eax
mov eax, dword [esp]
add esp, 0x190
pop ebp
pop ebx
pop edi
pop esi
ret 8
lea eax, [esp + 0x18]
push eax
mov ecx, dword [eax + 0x40]
lea edx, [eax + 0x2c]
call fcn.00413154
jmp 0x411990
push 0x1c4
mov byte [ebx], 1
call fcn.004135f4
mov ebp, eax
pop eax
test ebp, ebp
je 0x411c40
mov ecx, ebp
push 0x10
call fcn.00411c54
mov dword [ebp + 0x1c0], 0
jmp 0x411c42
xor ebp, ebp
mov dword [0x41d208], ebp
mov byte [ebx], 0
jmp 0x411b67
xor eax, eax
jmp 0x411bf5