Function at 0x439d60
Capabilities:
Access peb ldr_data
Check os version
Get kernel32 base address
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4c675e
mov eax, dword fs:[0]
push eax
sub esp, 0x98
push ebx
push esi
push edi
mov eax, dword [0x4fe870]
xor eax, esp
push eax
lea eax, [esp + 0xa8]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [esp + 0x14], ebx
mov edi, dword [ebp + 8]
mov esi, edi
call fcn.0041e920
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [eax]
push eax
push 0x4db728
mov esi, ebx
call fcn.00433e20
xor esi, esi
push esi
call fcn.0049fe43
add esp, 0xc
add eax, 0x1e13380
lea ecx, [esp + 0x44]
adc edx, esi
push ecx
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], edx
mov byte [esp + 0x17], 0
call fcn.0044dc60
mov dword [esp + 0xb0], esi
push edi
call fcn.0041e540
mov ecx, dword [eax + 0x10]
sub ecx, dword [eax + 0xc]
mov dword [esp + 0x40], eax
sar ecx, 2
cmp ecx, esi
mov dword [esp + 0x24], ecx
mov dword [esp + 0x18], esi
jle 0x43a040
lea ecx, [ecx]
mov ebx, dword [esp + 0x18]
mov eax, dword [esp + 0x40]
call fcn.00422180
mov edi, dword [eax]
mov ebx, dword [edi + 4]
push 0x4d8294
mov dword [esp + 0x38], edi
call fcn.00475770
mov ecx, eax
call fcn.004750e0
cmp eax, 3
jne 0x439e85
mov ebx, dword [edi + 4]
push 0x4d82e0
call fcn.00475770
mov ecx, eax
call fcn.004750e0
cmp eax, 6
jne 0x439e85
push edi
call fcn.0041d0e0
cmp eax, 1
je 0x439e85
mov edx, dword [esp + 0x14]
cmp byte [edx + 0xc1e], 0
jne 0x43a0e6
call fcn.00417840
mov ecx, eax
call fcn.00422ed0
test al, al
je 0x43a0e6
mov ebx, dword [edi + 4]
push 0x4d8294
call fcn.00475770
mov ecx, eax
call fcn.004750e0
cmp eax, 4
jne 0x439fdf
mov ebx, dword [edi + 4]
push 0x4d82e0
call fcn.00475770
mov ecx, eax
call fcn.004750e0
cmp eax, 5
jne 0x439fdf
mov edi, dword [edi + 4]
push 0x4d8274
mov ebx, edi
call fcn.00475770
mov ecx, eax
call fcn.004750e0
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x3c]
push ecx
lea edi, [esp + 0x4c]
call fcn.0044ddc0
mov edi, dword [esp + 0x38]
mov ebx, dword [esp + 0x5c]
test edi, edi
je 0x439efe
cmp edi, dword [esp + 0x44]
je 0x439f03
call fcn.0049f799
mov esi, dword [esp + 0x3c]
cmp esi, ebx
jne 0x439f53
mov esi, dword [esp + 0x34]
mov ebx, dword [esi + 4]
push 0x4d8274
call fcn.00475770
mov ecx, eax
call fcn.004750e0
lea edx, [esp + 0x94]
mov dword [esp + 0x1c], eax
push edx
mov eax, esi
call fcn.0041da60
mov esi, dword [eax]
mov edi, dword [eax + 4]
lea eax, [esp + 0x1c]
push eax
lea ebx, [esp + 0x48]
call fcn.0044dcb0
mov dword [eax], esi
mov dword [eax + 4], edi
jmp 0x43a02a
test edi, edi
jne 0x439fdb
call fcn.0049f799
cmp esi, dword [edi + 0x18]
jne 0x439f6a
call fcn.0049f799
mov ebx, dword [esi + 0x10]
mov edi, dword [esi + 0x14]
mov esi, dword [esp + 0x34]
lea ecx, [esp + 0x84]
push ecx
mov eax, esi
call fcn.0041da60
mov edx, dword [eax + 4]
cmp edx, edi
jl 0x43a02a
jg 0x439f9a
mov eax, dword [eax]
cmp eax, ebx
jbe 0x43a02a
mov ebx, dword [esi + 4]
push 0x4d8274
call fcn.00475770
mov ecx, eax
call fcn.004750e0
lea ecx, [esp + 0x8c]
mov dword [esp + 0x1c], eax
push ecx
mov eax, esi
call fcn.0041da60
mov esi, dword [eax]
mov edi, dword [eax + 4]
lea edx, [esp + 0x1c]
push edx
lea ebx, [esp + 0x48]
call fcn.0044dcb0
mov dword [eax], esi
mov dword [eax + 4], edi
jmp 0x43a02a
mov edi, dword [edi]
jmp 0x439f60
mov esi, edi
call fcn.0041dba0
test al, al
je 0x43a02a
lea eax, [esp + 0x9c]
push eax
mov eax, edi
call fcn.0041da60
mov ecx, dword [eax + 4]
cmp ecx, dword [esp + 0x30]
jg 0x43a02a
jl 0x43a00c
mov edx, dword [eax]
cmp edx, dword [esp + 0x2c]
jae 0x43a02a
lea eax, [esp + 0x64]
push eax
mov eax, edi
call fcn.0041da60
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x30], edx
mov byte [esp + 0x13], 1
mov eax, dword [esp + 0x18]
inc eax
cmp eax, dword [esp + 0x24]
mov dword [esp + 0x18], eax
jl 0x439e10
mov edi, dword [ebp + 8]
mov eax, dword [esp + 0x5c]
mov ebx, dword [esp + 0x44]
mov esi, dword [eax]
mov dword [esp + 0x28], esi
mov dword [esp + 0x24], ebx
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], ebx
lea ebx, [ebx]
test ebx, ebx
je 0x43a06a
cmp ebx, dword [esp + 0x1c]
je 0x43a06f
call fcn.0049f799
cmp esi, dword [esp + 0x20]
je 0x43a16f
test ebx, ebx
jne 0x43a161
call fcn.0049f799
xor eax, eax
cmp esi, dword [eax + 0x18]
jne 0x43a092
call fcn.0049f799
mov edx, dword [esi + 0x14]
cmp edx, dword [esp + 0x30]
jg 0x43a0d0
jl 0x43a0a6
mov eax, dword [esi + 0x10]
cmp eax, dword [esp + 0x2c]
jae 0x43a0d0
test ebx, ebx
jne 0x43a168
call fcn.0049f799
cmp esi, dword [ebx + 0x18]
jne 0x43a0bd
call fcn.0049f799
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 0x14]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x30], edx
mov byte [esp + 0x13], 1
lea esi, [esp + 0x24]
call fcn.0044f950
mov esi, dword [esp + 0x28]
mov ebx, dword [esp + 0x24]
jmp 0x43a060
mov esi, dword [ebp + 8]
call fcn.0041e920
cmp byte [eax + 0x1c], 0
je 0x43a121
mov dword [esp + 0xb0], 0xffffffff
lea eax, [esp + 0x44]
push eax
call fcn.0043a660
mov ecx, dword [esp + 0xa8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push edi
mov edi, dword [esp + 0x18]
push edi
call fcn.00439820
push esi
mov ecx, edi
call fcn.00439d60
mov dword [esp + 0xb0], 0xffffffff
lea ecx, [esp + 0x44]
push ecx
call fcn.0043a660
mov ecx, dword [esp + 0xa8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov eax, dword [ebx]
jmp 0x43a088
mov ebx, dword [ebx]
jmp 0x43a0b3
mov esi, edi
call fcn.0041e920
cmp byte [esp + 0x13], 0
mov esi, eax
je 0x43a1c5
cmp dword [esi + 0x10], 0
jne 0x43a1b5
mov ebx, dword [esi + 4]
push 0x4d8248
call fcn.00475770
mov ecx, eax
call fcn.00475280
mov ebx, eax
call fcn.00417840
mov edi, eax
call fcn.00418200
push eax
mov ecx, ebx
call fcn.0041a670
mov edi, dword [ebp + 8]
mov dword [esi + 0x10], eax
mov eax, dword [esp + 0x2c]
mov esi, dword [esi + 0x10]
push eax
push esi
call fcn.0041b550
jmp 0x43a206
cmp dword [esi + 0x10], 0
jne 0x43a1fb
mov ebx, dword [esi + 4]
push 0x4d8248
call fcn.00475770
mov ecx, eax
call fcn.00475280
mov ebx, eax
call fcn.00417840
mov edi, eax
call fcn.00418200
push eax
mov ecx, ebx
call fcn.0041a670
mov edi, dword [ebp + 8]
mov dword [esi + 0x10], eax
mov esi, dword [esi + 0x10]
push 1
push esi
call fcn.0041b7b0
mov esi, edi
call fcn.0041e920
mov esi, eax
cmp dword [esi + 0x10], 0
jne 0x43a245
mov ebx, dword [esi + 4]
push 0x4d8248
call fcn.00475770
mov ecx, eax
call fcn.00475280
mov ebx, eax
call fcn.00417840
mov edi, eax
call fcn.00418200
push eax
mov ecx, ebx
call fcn.0041a670
mov edi, dword [ebp + 8]
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x10]
push eax
call fcn.0041b690
mov edx, dword [esp + 0x14]
cmp eax, 2
mov ecx, esi
mov eax, 1
jne 0x43a26b
mov esi, dword [edx + 0xc10]
call fcn.0041c9f0
jmp 0x43a276
mov edx, dword [edx + 0xc10]
call fcn.0041cad0
call fcn.00417840
mov ecx, eax
call fcn.00422ed0
test al, al
jne 0x43a3bd
push edi
call fcn.0041e710
xor ebx, ebx
call fcn.00406f20
mov eax, dword [eax]
mov eax, dword [eax + 4]
push 0x4d64f0
mov ebx, eax
call fcn.00475770
mov ecx, eax
call fcn.004750e0
test eax, eax
je 0x43a3bd
push edi
call fcn.0041e710
xor ebx, ebx
call fcn.00406f20
mov eax, dword [eax]
mov eax, dword [eax + 4]
push 0x4d64f0
mov ebx, eax
call fcn.00475770
mov ecx, eax
call fcn.004750e0
cmp eax, 1
jle 0x43a2e7
inc eax
cdq
sub eax, edx
sar eax, 1
push eax
push 2
mov esi, edi
call fcn.0041e920
mov ecx, dword [esp + 0x1c]
push eax
push 1
call fcn.00441550
push edi
call fcn.0041e710
xor ebx, ebx
call fcn.00406f20
mov esi, dword [eax]
mov ebx, dword [esi + 4]
push 0x4d64f0
call fcn.00475770
mov ecx, eax
call fcn.004750e0
cmp eax, 1
jle 0x43a3a9
mov esi, dword [esi + 4]
push 0x4d64f0
mov ebx, esi
call fcn.00475770
mov ecx, eax
call fcn.004750e0
cdq
sub eax, edx
sar eax, 1
je 0x43a3a9
push edi
call fcn.0041e710
xor ebx, ebx
call fcn.00406f20
mov eax, dword [eax]
mov ebx, dword [eax + 4]
push 0x4d64f0
mov dword [esp + 0x28], eax
xor esi, esi
call fcn.00475770
mov ecx, eax
call fcn.004750e0
cmp eax, 1
jle 0x43a393
mov eax, dword [esp + 0x24]
mov ebx, dword [eax + 4]
push 0x4d64f0
call fcn.00475770
mov ecx, eax
call fcn.004750e0
cdq
sub eax, edx
mov esi, eax
sar esi, 1
push esi
push 1
mov esi, edi
call fcn.0041e920
mov ecx, dword [esp + 0x1c]
push eax
push 1
call fcn.00441550
push edi
call fcn.0041e710
xor ebx, ebx
call fcn.00406f20
mov ecx, dword [eax]
call fcn.004315a0
call fcn.00417840
mov ecx, eax
call fcn.00422fd0
test al, al
jne 0x43a469
push edi
mov dword [esp + 0x1c], 0
call fcn.0041e710
mov ebx, 1
call fcn.00406f20
mov eax, dword [eax]
mov eax, dword [eax + 4]
push 0x4d64f0
mov ebx, eax
call fcn.00475770
mov ecx, eax
call fcn.004750e0
test eax, eax
jle 0x43a452
mov ebx, dword [esp + 0x18]
push 1
push ebx
mov esi, edi
call fcn.0041e920
mov ecx, dword [esp + 0x1c]
push eax
push 2
call fcn.00441550
inc ebx
push edi
mov dword [esp + 0x1c], ebx
call fcn.0041e710
mov ebx, 1
call fcn.00406f20
mov eax, dword [eax]
mov eax, dword [eax + 4]
push 0x4d64f0
mov ebx, eax
call fcn.00475770
mov ecx, eax
call fcn.004750e0
cmp dword [esp + 0x18], eax
jl 0x43a405
push edi
call fcn.0041e710
mov ebx, 1
call fcn.00406f20
mov ecx, dword [eax]
call fcn.004315a0
mov ecx, edi
call fcn.0041e840
lea ecx, [esp + 0x6c]
push ecx
mov ecx, eax
mov dword [esp + 0x28], eax
call fcn.00475bb0
mov byte [esp + 0xb0], 1
mov ecx, dword [esp + 0x7c]
sub ecx, dword [esp + 0x78]
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
xor esi, esi
add eax, edx
je 0x43a5c9
jmp 0x43a4b0
mov eax, esi
lea edi, [esp + 0x6c]
call fcn.0044d650
mov ebx, 0x10
cmp dword [eax + 0x18], ebx
jb 0x43a4ca
mov eax, dword [eax + 4]
jmp 0x43a4cd
add eax, 4
push eax
call fcn.004a072d
mov dword [esp + 0x20], eax
add esp, 4
mov eax, esi
lea edi, [esp + 0x6c]
call fcn.0044d650
cmp dword [eax + 0x18], ebx
jb 0x43a4ef
mov eax, dword [eax + 4]
jmp 0x43a4f2
add eax, 4
mov ebx, dword [esp + 0x24]
push eax
call fcn.00475770
mov ecx, eax
call fcn.004750e0
cmp eax, 3
jne 0x43a541
mov ecx, dword [esp + 0x5c]
mov ebx, dword [esp + 0x44]
lea edx, [esp + 0x1c]
push edx
lea eax, [esp + 0x68]
push eax
lea edi, [esp + 0x4c]
mov dword [esp + 0x44], ecx
call fcn.0044ddc0
mov edi, eax
mov eax, dword [edi]
test eax, eax
je 0x43a533
cmp eax, ebx
je 0x43a538
call fcn.0049f799
mov ecx, dword [esp + 0x3c]
cmp dword [edi + 4], ecx
je 0x43a567
mov ecx, dword [esp + 0x7c]
sub ecx, dword [esp + 0x78]
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
inc esi
add eax, edx
cmp esi, eax
jb 0x43a4b0
jmp 0x43a5c6
push 0
call fcn.0049fe43
mov esi, dword [ebp + 8]
add esp, 4
sub eax, dword [str.._AV__CStringT__WV__StrTraitMFC__WV__ChTraitsCRT__W_ATL_____ATL__]
sbb edx, dword [0x4fff44]
mov edi, eax
mov dword [esp + 0x68], edx
call fcn.0041e920
mov eax, dword [eax + 4]
push 0x4d8248
mov ebx, eax
call fcn.00475770
mov ecx, eax
call fcn.00475280
push edi
mov esi, eax
call fcn.00417840
mov edi, eax
call fcn.00417d50
push eax
mov ecx, esi
call fcn.00419700
mov ecx, dword [ebp + 8]
mov edx, dword [esp + 0x14]
push ecx
push edx
call fcn.00441880
mov edi, dword [ebp + 8]
mov esi, dword [esp + 0x14]
mov eax, dword [esi + 0x2b8]
push 0x4da33c
push 0x100
push 0x40b
push eax
call dword [0x4c85fc]
call fcn.00417840
mov ecx, eax
call fcn.00417620
test eax, eax
je 0x43a600
push edi
push esi
call fcn.0044b2b0
mov byte [esp + 0xb0], 0
lea ecx, [esp + 0x6c]
push ecx
call fcn.00415e50
mov dword [esp + 0xb0], 3
lea esi, [esp + 0x44]
call fcn.0044e660
mov dword [esp + 0xb0], 0xffffffff
mov edx, dword [esp + 0x44]
push edx
call fcn.0047b19e
add esp, 4
mov ecx, dword [esp + 0xa8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4