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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x42642d
mov eax, dword fs:[0]
push eax
sub esp, 0x108
push ebx
push esi
push edi
mov eax, dword [0x429050]
xor eax, esp
push eax
lea eax, [esp + 0x118]
mov dword fs:[0], eax
mov ebx, ecx
mov edi, dword [ebp + 0x18]
mov ecx, edi
call fcn.0040ea9b
test al, al
jne 0x4142af
mov eax, 0x80004001
mov ecx, dword [esp + 0x118]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x24
xor esi, esi
mov dword [esp + 0x70], esi
mov dword [esp + 0x74], esi
mov dword [esp + 0x78], esi
mov dword [esp + 0x7c], 4
mov dword [esp + 0x6c], 0x4056dc
mov dword [esp + 0x120], esi
mov dword [esp + 0x3c], esi
lea eax, [esp + 0x40]
push eax
mov byte [esp + 0x124], 1
call fcn.00417d1a
mov byte [esp + 0x120], 2
cmp ebx, esi
je 0x4142fc
mov eax, dword [ebx]
push ebx
call dword [eax + 4]
mov eax, dword [esp + 0x3c]
cmp eax, esi
je 0x41430a
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x20], esi
cmp dword [edi + 0x30], esi
jle 0x414412
push 0x18
call fcn.00422e99
pop ecx
cmp eax, esi
je 0x414334
mov dword [eax + 4], esi
mov dword [eax], 0x4056c0
mov edi, eax
jmp 0x414336
xor edi, edi
mov dword [esp + 0x30], edi
cmp edi, esi
je 0x414344
mov eax, dword [edi]
push edi
call dword [eax + 4]
mov ecx, dword [esp + 0x20]
mov byte [esp + 0x120], 3
lea eax, [esp + 0x3c]
mov dword [edi + 8], eax
mov eax, dword [ebp + 0xc]
mov dword [edi + 0x10], eax
mov eax, dword [ebp + 0x10]
mov dword [edi + 0x14], eax
mov eax, dword [ebp + 0x14]
lea eax, [eax + ecx*8]
mov ecx, dword [eax]
add dword [ebp + 0xc], ecx
mov dword [esp + 0x1c], eax
mov eax, dword [eax + 4]
adc dword [ebp + 0x10], eax
push 0x28
call fcn.00422e99
pop ecx
cmp eax, esi
je 0x414394
mov dword [eax + 4], esi
mov dword [eax], 0x4056b0
mov dword [eax + 8], esi
mov ebx, eax
jmp 0x414396
xor ebx, ebx
mov dword [esp + 0x2c], ebx
cmp ebx, esi
je 0x4143a4
mov eax, dword [ebx]
push ebx
call dword [eax + 4]
lea esi, [ebx + 8]
mov byte [esp + 0x120], 4
call fcn.00412fcf
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
and dword [ebx + 0x18], 0
and dword [ebx + 0x1c], 0
mov dword [ebx + 0x10], eax
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0x70]
push eax
mov dword [ebx + 0x14], ecx
mov byte [ebx + 0x20], 0
call fcn.00414f43
mov byte [esp + 0x120], 3
mov eax, dword [ebx]
push ebx
call dword [eax + 8]
mov byte [esp + 0x120], 2
mov eax, dword [edi]
push edi
call dword [eax + 8]
inc dword [esp + 0x20]
mov eax, dword [ebp + 0x18]
mov ecx, dword [esp + 0x20]
xor esi, esi
cmp ecx, dword [eax + 0x30]
jl 0x41431b
mov edi, eax
mov eax, dword [edi + 8]
mov dword [esp + 0x20], eax
lea eax, [esp + 0xac]
call fcn.004141fd
mov dword [esp + 0x100], esi
mov dword [esp + 0x104], esi
mov dword [esp + 0x108], esi
mov dword [esp + 0x10c], 8
mov dword [esp + 0xfc], 0x405440
lea eax, [esp + 0xac]
mov byte [esp + 0x120], 5
call fcn.00413fa7
mov edi, dword [ebp + 8]
cmp byte [edi], 0
je 0x414487
lea esi, [edi + 4]
lea eax, [esp + 0xac]
call fcn.004140c6
neg al
sbb al, al
inc al
je 0x414716
lea ecx, [edi + 0x78]
push dword [ecx + 8]
mov eax, dword [ecx]
push 0
mov dword [esp + 0x24], ecx
call dword [eax + 4]
lea ebx, [edi + 0x74]
mov eax, dword [ebx]
test eax, eax
je 0x4144aa
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
and dword [ebx], 0
cmp byte [edi + 0x68], 0
je 0x4144ec
push 0x88
call fcn.00422e99
pop ecx
test eax, eax
je 0x4144c8
mov esi, eax
call fcn.00414e46
jmp 0x4144ca
xor eax, eax
mov dword [edi + 0x6c], eax
mov edi, eax
mov esi, ebx
call fcn.00412fcf
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x6c]
test eax, eax
je 0x4144e5
add eax, 4
jmp 0x4144e7
xor eax, eax
mov dword [ecx + 0x70], eax
mov edi, ecx
mov ecx, dword [edi + 0x70]
mov eax, dword [ecx]
lea edx, [esp + 0xac]
push edx
call dword [eax]
mov esi, eax
test esi, esi
je 0x41456c
lea ecx, [esp + 0xfc]
mov byte [esp + 0x120], 6
call fcn.00412d63
lea eax, [esp + 0xac]
push eax
mov byte [esp + 0x124], 2
call fcn.0040e990
mov byte [esp + 0x120], 7
lea eax, [esp + 0x40]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
mov byte [esp + 0x120], 0
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x414553
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
or dword [esp + 0x120], 0xffffffff
lea eax, [esp + 0x6c]
push eax
call fcn.00414f8e
mov eax, esi
jmp 0x414297
and dword [esp + 0x24], 0
cmp dword [esp + 0x20], 0
jle 0x4146e2
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0xc]
mov ecx, dword [esp + 0x24]
mov esi, dword [eax + ecx*4]
xor ebx, ebx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], ebx
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x18]
push eax
mov byte [esp + 0x128], 9
push dword [esi + 4]
push dword [esi]
call fcn.00412d1e
mov dword [esp + 0x2c], eax
cmp eax, ebx
jne 0x414910
mov dword [esp + 0x30], ebx
mov byte [esp + 0x120], 0xc
cmp dword [esi + 0x14], 1
jne 0x414614
cmp dword [esi + 0x18], 1
jne 0x414614
cmp dword [esp + 0x14], ebx
je 0x414997
mov ebx, dword [esp + 0x14]
mov eax, dword [ebx]
push ebx
call dword [eax + 4]
cmp byte [edi + 0x68], 0
mov dword [esp + 0x30], ebx
je 0x414656
mov edi, dword [edi + 0x6c]
mov ecx, edi
call fcn.0041835c
mov eax, dword [edi + 0x7c]
mov ecx, dword [edi + 0x80]
mov esi, dword [ecx + eax*4 - 4]
lea esi, [esi + 0x14]
mov edi, ebx
call fcn.00412fcf
jmp 0x414653
cmp dword [esp + 0x18], ebx
je 0x414a09
mov ebx, dword [esp + 0x18]
mov eax, dword [ebx]
push ebx
call dword [eax + 4]
cmp byte [edi + 0x68], 0
mov dword [esp + 0x30], ebx
je 0x414656
mov edi, dword [edi + 0x6c]
mov ecx, edi
call fcn.0041835c
mov eax, dword [edi + 0x7c]
mov ecx, dword [edi + 0x80]
mov esi, dword [ecx + eax*4 - 4]
lea esi, [esi + 0x18]
mov edi, ebx
call fcn.00412fcf
mov edi, dword [ebp + 8]
push 4
call fcn.00422e99
mov esi, eax
pop ecx
mov dword [esp + 0x2c], esi
mov byte [esp + 0x120], 0x11
test esi, esi
je 0x41467e
mov dword [esi], ebx
test ebx, ebx
je 0x414680
mov eax, dword [ebx]
push ebx
call dword [eax + 4]
jmp 0x414680
xor esi, esi
mov byte [esp + 0x120], 0xc
push esi
mov esi, dword [esp + 0x20]
call fcn.00411bd0
mov byte [esp + 0x120], 9
test ebx, ebx
je 0x4146a4
mov eax, dword [ebx]
push ebx
call dword [eax + 8]
mov byte [esp + 0x120], 8
mov eax, dword [esp + 0x18]
test eax, eax
je 0x4146ba
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [esp + 0x120], 5
mov eax, dword [esp + 0x14]
test eax, eax
je 0x4146d0
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
inc dword [esp + 0x24]
mov eax, dword [esp + 0x24]
cmp eax, dword [esp + 0x20]
jl 0x41457c
lea esi, [edi + 4]
lea eax, [esp + 0xac]
call fcn.00414e9b
push dword [esi + 0x58]
mov eax, dword [esi + 0x50]
push 0
lea ecx, [esi + 0x50]
call dword [eax + 4]
lea edi, [esp + 0xfc]
lea eax, [esi + 0x50]
call fcn.00411f3e
mov eax, dword [ebp + 8]
mov byte [eax], 1
mov edi, eax
mov ecx, dword [edi + 0x70]
mov eax, dword [ecx]
call dword [eax + 4]
xor esi, esi
mov dword [esp + 0x2c], esi
mov dword [esp + 0x30], esi
mov dword [esp + 0x14], esi
cmp dword [esp + 0x20], esi
jle 0x414b00
mov dword [esp + 0x38], esi
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0xc]
mov ecx, dword [esp + 0x14]
mov esi, dword [eax + ecx*4]
mov eax, dword [edi + 0x84]
mov ecx, dword [esp + 0x38]
mov eax, dword [ecx + eax]
xor ebx, ebx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x24], ebx
lea edx, [esp + 0x24]
push edx
mov byte [esp + 0x124], 0x12
mov eax, dword [eax]
mov ecx, dword [eax]
push 0x40539c
push eax
call dword [ecx]
mov eax, dword [esp + 0x24]
cmp eax, ebx
je 0x4147a9
mov ecx, dword [esi + 0xc]
cmp ecx, 0xffffffff
ja 0x414b8e
cmp ecx, ebx
jbe 0x4147a9
mov edx, dword [eax]
push ecx
push dword [esi + 0x10]
push eax
call dword [edx + 0xc]
mov dword [esp + 0x28], eax
cmp eax, ebx
jne 0x414bd2
mov eax, dword [esp + 0x24]
mov byte [esp + 0x120], 5
cmp eax, ebx
je 0x4147bb
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
cmp byte [ebp + 0x24], 0
je 0x414815
mov dword [esp + 0x18], ebx
mov byte [esp + 0x120], 0x17
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
mov ecx, dword [eax]
lea edx, [esp + 0x18]
push edx
push 0x4053bc
push eax
call dword [ecx]
mov eax, dword [esp + 0x18]
cmp eax, ebx
je 0x414803
push dword [ebp + 0x28]
mov ecx, dword [eax]
push eax
call dword [ecx + 0xc]
mov dword [esp + 0x1c], eax
cmp eax, ebx
jne 0x414c43
mov eax, dword [esp + 0x18]
mov byte [esp + 0x120], 5
cmp eax, ebx
je 0x414815
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [esi + 0x18]
mov edx, dword [esi + 0x14]
push 4
pop ecx
add dword [esp + 0x38], ecx
mov dword [esp + 0x28], eax
mov eax, 0x405440
mov dword [esp + 0x1c], edx
mov dword [esp + 0x84], ebx
mov dword [esp + 0x88], ebx
mov dword [esp + 0x8c], ebx
mov dword [esp + 0x90], ecx
mov dword [esp + 0x80], eax
mov dword [esp + 0x98], ebx
mov dword [esp + 0x9c], ebx
mov dword [esp + 0xa0], ebx
mov dword [esp + 0xa4], ecx
mov dword [esp + 0x94], eax
mov ebx, edx
lea esi, [esp + 0x80]
mov byte [esp + 0x120], 0x1b
call fcn.00412dc2
mov ebx, dword [esp + 0x28]
lea esi, [esp + 0x94]
call fcn.00412dc2
test ebx, ebx
jbe 0x4148c0
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0x48]
mov ecx, dword [esp + 0x30]
lea eax, [eax + ecx*8]
push eax
lea esi, [esp + 0x98]
call fcn.00411bd0
inc dword [esp + 0x30]
dec ebx
jne 0x41489f
and dword [esp + 0x28], 0
cmp dword [esp + 0x1c], 0
jbe 0x414aaa
mov ebx, dword [esp + 0x2c]
mov eax, dword [ebp + 0x18]
mov edx, dword [eax + 0x1c]
xor esi, esi
test edx, edx
jle 0x4148f3
mov ecx, dword [eax + 0x20]
cmp dword [ecx], ebx
je 0x414a52
inc esi
add ecx, 8
cmp esi, edx
jl 0x4148e3
or ecx, 0xffffffff
test ecx, ecx
js 0x414a59
mov edx, dword [eax + 0x20]
mov ecx, dword [edx + ecx*8 + 4]
mov eax, dword [eax + 0x48]
lea eax, [eax + ecx*8]
jmp 0x414a86
mov byte [esp + 0x120], 8
mov eax, dword [esp + 0x18]
cmp eax, ebx
je 0x414926
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [esp + 0x120], 5
mov eax, dword [esp + 0x14]
cmp eax, ebx
je 0x41493c
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
lea ecx, [esp + 0xfc]
mov byte [esp + 0x120], 0xa
call fcn.00412d63
lea eax, [esp + 0xac]
push eax
mov byte [esp + 0x124], 2
call fcn.0040e990
lea eax, [esp + 0x40]
push eax
mov byte [esp + 0x124], 0xb
call dword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
mov byte [esp + 0x120], 0
mov eax, dword [esp + 0x3c]
cmp eax, ebx
je 0x41498e
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov esi, dword [esp + 0x2c]
jmp 0x414553
mov byte [esp + 0x120], 8
mov eax, dword [esp + 0x18]
cmp eax, ebx
je 0x4149ad
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
lea ecx, [esp + 0xfc]
mov byte [esp + 0x120], 0xd
call fcn.00412d63
lea eax, [esp + 0xac]
push eax
mov byte [esp + 0x124], 2
call fcn.0040e990
mov byte [esp + 0x120], 0xe
lea eax, [esp + 0x40]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
mov byte [esp + 0x120], 0
mov eax, dword [esp + 0x3c]
cmp eax, ebx
je 0x4149ff
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov esi, 0x80004001
jmp 0x414553
mov byte [esp + 0x120], 5
mov eax, dword [esp + 0x14]
cmp eax, ebx
je 0x414a1f
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
lea ecx, [esp + 0xfc]
mov byte [esp + 0x120], 0xf
call fcn.00412d63
lea eax, [esp + 0xac]
push eax
mov byte [esp + 0x124], 2
call fcn.0040e990
mov byte [esp + 0x120], 0x10
jmp 0x4149de
mov ecx, esi
jmp 0x4148f6
mov ecx, dword [eax + 0x30]
xor edx, edx
test ecx, ecx
jle 0x414a75
mov eax, dword [eax + 0x34]
cmp dword [eax], ebx
je 0x414b87
inc edx
add eax, 4
cmp edx, ecx
jl 0x414a65
or eax, 0xffffffff
test eax, eax
js 0x414cb4
mov ecx, dword [ebp + 0x14]
lea eax, [ecx + eax*8]
push eax
lea esi, [esp + 0x84]
call fcn.00411bd0
inc dword [esp + 0x28]
mov eax, dword [esp + 0x28]
inc ebx
mov dword [esp + 0x2c], ebx
cmp eax, dword [esp + 0x1c]
jb 0x4148d4
push dword [esp + 0xa0]
mov ecx, dword [edi + 0x70]
push dword [esp + 0x90]
mov eax, dword [ecx]
push dword [esp + 0x1c]
call dword [eax + 8]
lea ecx, [esp + 0x94]
mov byte [esp + 0x120], 0x1a
call fcn.00412d63
lea ecx, [esp + 0x80]
mov byte [esp + 0x120], 5
call fcn.00412d63
inc dword [esp + 0x14]
mov eax, dword [esp + 0x14]
cmp eax, dword [esp + 0x20]
jl 0x41473a
xor esi, esi
mov ecx, dword [esp + 0xf4]
mov ecx, dword [ecx]
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0x20]
lea edx, [esp + 0xb0]
call fcn.00413ed4
cmp byte [edi + 0x68], 0
je 0x414b2e
mov eax, dword [edi + 0x6c]
mov ecx, dword [esp + 0x1c]
mov dword [eax + 0x70], ecx
cmp dword [esp + 0x20], esi
jne 0x414d38
lea ecx, [esp + 0xfc]
mov byte [esp + 0x120], 0x1e
call fcn.00412d63
lea eax, [esp + 0xac]
push eax
mov byte [esp + 0x124], 2
call fcn.0040e990
lea eax, [esp + 0x40]
push eax
mov byte [esp + 0x124], 0x1f
call dword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
mov byte [esp + 0x120], 0
mov eax, dword [esp + 0x3c]
cmp eax, esi
jmp 0x41454b
mov eax, edx
jmp 0x414a78
mov byte [esp + 0x120], 5
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
lea ecx, [esp + 0xfc]
mov byte [esp + 0x120], 0x13
call fcn.00412d63
lea eax, [esp + 0xac]
push eax
mov byte [esp + 0x124], 2
call fcn.0040e990
mov byte [esp + 0x120], 0x14
jmp 0x4149de
mov byte [esp + 0x120], 5
mov eax, dword [esp + 0x24]
add al, 0x83
rol byte [eax + edx*2], 0xc2
or byte [eax], al
dec dword [edi]
mov bh, 0x41
adc al, 0xf
mov bh, 0x71
push es
test esi, esi
lea eax, [eax + ecx + 0x18]
jbe 0x414ce8
mov ecx, dword [eax + 8]
test ecx, ecx
jne 0x414ccf
mov ecx, dword [eax + 0x10]
mov edx, dword [eax + 0xc]
cmp dword [esp + 0xc], edx
jb 0x414ce0
add edx, ecx
cmp dword [esp + 0xc], edx
jb 0x414cea
inc edi
add eax, 0x28
cmp edi, esi
jb 0x414cc5
xor eax, eax
pop edi
pop esi
ret
ja 0x414d76
add esi, edi
push esi
mov ebx, dword [esi + 0x78]
push ebx
call fcn.00414cad
pop ecx
test eax, eax
pop ecx
je 0x414df8
push edi
push esi
push ebx
call fcn.00414ced
mov esi, dword [esi + 0x78]
xor ecx, ecx
add esp, 0xc
cmp esi, ecx
je 0x414df8
mov ebx, dword [esi + edi + 0x24]
mov eax, dword [esi + edi + 0x20]
mov edx, dword [ebp + 0xc]
add esi, edi
add ebx, edi
add eax, edi
mov edi, dword [esi + 0x1c]
mov dword [ebp - 0x18], eax
add edi, dword [ebp + 8]
shr edx, 0x10
test dx, dx
je 0x414e07
fild word [ebx]
invalid
mov dword [ebp - 4], ecx
cmp dword [edi], 0
je 0x414dec
and dword [ebp - 0x10], 0
mov dword [ebp - 0xc], eax
mov dword [ebp - 8], ebx
call fcn.00414c6d
jae 0x414df6
adc esp, dword [eax - 0x75]
inc ebp
clc
movzx eax, word [eax]
mov bh, 0
cmp eax, dword [ebp - 4]
jne 0x414dd5
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp + 8]
add eax, dword [ecx]
mov dword [ebp - 0x14], eax
call fcn.00414c6d
and bh, byte [ebx]
jnp 0x414da9
push dword [ebp + 0xc]
push dword [ebp - 0x14]
call fcn.00414c03
pop ecx
test eax, eax
pop ecx
je 0x414dff
mov eax, dword [esi + 0x18]
inc dword [ebp - 0x10]
add dword [ebp - 8], 2
add dword [ebp - 0xc], 4
dec eax
cmp dword [ebp - 0x10], eax
jbe 0x414d9c
mov eax, dword [ebp - 0x18]
mov ecx, dword [esi + 0x14]
inc dword [ebp - 4]
dec ecx
cmp dword [ebp - 4], ecx
jbe 0x414d8d
mov eax, dword [ebp - 4]
mov eax, dword [edi + eax*4]
jmp 0x414e2b
mov eax, dword [esi + 0x10]
mov edx, edi