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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4c6850
mov eax, dword fs:[0]
push eax
sub esp, 0x80
push ebx
push esi
push edi
mov eax, dword [0x4fe870]
xor eax, esp
push eax
lea eax, [esp + 0x90]
mov dword fs:[0], eax
lea ecx, [esp + 0x28]
call fcn.00409580
xor esi, esi
mov dword [esp + 0x98], esi
lea ecx, [esp + 0x24]
call fcn.00409580
mov byte [esp + 0x98], 1
lea ecx, [esp + 0x20]
call fcn.00409580
mov byte [esp + 0x98], 2
lea ecx, [esp + 0x1c]
call fcn.00409580
mov bl, 3
mov byte [esp + 0x98], bl
push esi
call fcn.0049fe43
mov dword [esp + 0x48], eax
add esp, 4
add eax, 0x1e13380
mov dword [esp + 0x3c], eax
mov eax, edx
adc eax, esi
mov dword [esp + 0x40], eax
mov eax, dword [ebp + 0xc]
push eax
mov dword [esp + 0x4c], edx
mov byte [esp + 0x17], 0
call fcn.0041f890
mov ecx, dword [eax + 0x10]
sub ecx, dword [eax + 0xc]
mov dword [esp + 0x30], eax
sar ecx, 2
cmp ecx, esi
mov dword [esp + 0x38], ecx
mov dword [esp + 0x18], esi
jle 0x439119
jmp 0x438d94
mov eax, dword [esp + 0x30]
mov ebx, dword [esp + 0x18]
call fcn.00406f20
mov edi, dword [eax]
mov ebx, dword [edi + 4]
push 0x4da08c
mov dword [esp + 0x18], edi
call fcn.00475770
mov ecx, eax
call fcn.004750e0
test eax, eax
jle 0x439187
mov esi, edi
call fcn.004460c0
test al, al
je 0x439187
call fcn.00417840
mov ecx, eax
call fcn.0040a020
test al, al
je 0x438eb4
mov esi, dword [ebp + 0xc]
call fcn.00430540
test eax, eax
je 0x438eb4
call fcn.00430540
mov eax, dword [eax + 4]
push 0x4da06c
mov ebx, eax
call fcn.00475770
mov ecx, eax
call fcn.004750e0
test eax, eax
jne 0x438eb4
mov ebx, dword [edi + 4]
push 0x4d85c4
call fcn.00475770
mov ecx, eax
call fcn.004750e0
mov ebx, eax
call fcn.00417840
mov ecx, eax
call fcn.00409e50
push ebx
mov dword [esp + 0x38], eax
call fcn.00405c60
mov ecx, dword [esp + 0x38]
add esp, 4
cmp eax, ecx
jge 0x438eb4
call fcn.0046e850
mov ebx, eax
mov esi, edi
mov dword [esp + 0x34], ebx
call fcn.0041f7d0
mov esi, eax
cmp dword [esi + 8], 0
jne 0x438e85
mov ebx, dword [esi + 4]
push 0x4d9404
call fcn.00475770
mov eax, dword [eax]
push eax
call fcn.00453d80
mov ebx, dword [esp + 0x38]
add esp, 4
mov dword [esi + 8], eax
mov edx, dword [ebx]
mov eax, dword [edx + 4]
mov esi, dword [esi + 8]
mov ecx, ebx
call eax
mov ecx, dword [esp + 0x18]
mov eax, dword [eax]
mov edx, dword [ebp + 8]
push esi
push ecx
push eax
push 0x4d7e80
push 0
push 1
push edx
call fcn.00435750
add esp, 0x1c
jmp 0x439012
mov eax, dword [esp + 0x18]
push eax
push 0x4db558
lea edi, [esp + 0x30]
call fcn.00414100
add esp, 8
lea ecx, [esp + 0x2c]
call fcn.00409580
mov byte [esp + 0x98], 4
mov ebx, dword [0x505f3c]
push 0x4d8248
call fcn.00475770
mov ecx, eax
call fcn.00475280
push eax
push 0x4d81d0
lea edi, [esp + 0x34]
call fcn.00408c60
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x4c]
and ecx, 0xffffff01
or ecx, 1
add esp, 8
xor ebx, ebx
mov dword [esp + 0x64], ecx
mov dword [esp + 0x68], ebx
mov dword [esp + 0x5c], edx
mov byte [esp + 0x98], 5
mov ecx, dword [esp + 0x2c]
mov eax, ecx
mov dword [esp + 0x88], 0xf
mov dword [esp + 0x84], ebx
mov byte [esp + 0x74], bl
lea esi, [eax + 1]
lea ebx, [ebx]
mov dl, byte [eax]
inc eax
cmp dl, bl
jne 0x438f50
sub eax, esi
push eax
push ecx
lea ecx, [esp + 0x78]
call fcn.004036e0
mov byte [esp + 0x98], 6
mov ecx, dword [esp + 0x14]
call fcn.004301c0
mov ecx, dword [esp + 0x74]
mov edi, 0x10
cmp dword [esp + 0x88], edi
jae 0x438f8b
lea ecx, [esp + 0x74]
lea edx, [esp + 0x5c]
push edx
push ecx
mov ebx, eax
call fcn.00475770
mov esi, eax
call fcn.00474d20
mov byte [esp + 0x98], 5
cmp dword [esp + 0x88], edi
jb 0x438fbd
mov eax, dword [esp + 0x74]
push eax
call fcn.0047b19e
add esp, 4
xor eax, eax
mov dword [esp + 0x88], 0xf
mov dword [esp + 0x84], eax
mov byte [esp + 0x74], al
mov byte [esp + 0x98], 4
lea eax, [esp + 0x5c]
call fcn.00474c40
mov byte [esp + 0x98], 3
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43900e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edi, dword [esp + 0x14]
mov ebx, dword [edi + 4]
push 0x4da048
xor esi, esi
call fcn.00475770
mov ecx, eax
call fcn.004750e0
test eax, eax
jle 0x439063
mov eax, dword [esp + 0x18]
push eax
push 0x4db558
lea edi, [esp + 0x2c]
call fcn.00414100
mov ecx, dword [esp + 0x1c]
mov ebx, dword [ecx + 4]
add esp, 8
push 0x4da048
inc esi
call fcn.00475770
mov ecx, eax
call fcn.004750e0
cmp esi, eax
jl 0x43902c
mov edi, dword [esp + 0x14]
xor ecx, ecx
mov edx, edi
call fcn.0042fe40
mov ebx, dword [edi + 4]
push 0x4da080
xor esi, esi
call fcn.00475770
mov ecx, eax
call fcn.004750e0
test eax, eax
jle 0x4390bd
mov edx, dword [esp + 0x18]
push edx
push 0x4db558
lea edi, [esp + 0x28]
call fcn.00414100
mov eax, dword [esp + 0x1c]
mov ebx, dword [eax + 4]
add esp, 8
push 0x4da080
inc esi
call fcn.00475770
mov ecx, eax
call fcn.004750e0
cmp esi, eax
jl 0x439086
mov edi, dword [esp + 0x14]
xor ecx, ecx
mov edx, edi
call fcn.0042fec0
mov ebx, dword [edi + 4]
push 0x4da084
call fcn.00475770
mov ecx, eax
call fcn.004750e0
test eax, eax
jne 0x4390f8
mov ecx, dword [esp + 0x18]
push ecx
push 0x4db558
lea edi, [esp + 0x24]
call fcn.00414100
mov edi, dword [esp + 0x1c]
add esp, 8
mov ecx, 1
mov edx, edi
call fcn.0042ff40
mov eax, dword [esp + 0x18]
inc eax
cmp eax, dword [esp + 0x38]
mov dword [esp + 0x18], eax
jl 0x438d90
mov bl, 3
mov edx, dword [esp + 0x1c]
cmp dword [edx - 0xc], 0
je 0x4392c1
push 1
lea eax, [esp + 0x3c]
push eax
lea ecx, [esp + 0x24]
call fcn.00429560
mov byte [esp + 0x98], 8
push eax
lea ecx, [esp + 0x20]
call fcn.0040f440
mov byte [esp + 0x98], bl
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x439170
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [ebp + 0xc]
mov edi, dword [ebp + 8]
lea ecx, [esp + 0x1c]
push ecx
push edx
push edi
call fcn.0043eb50
jmp 0x4392c4
mov ebx, dword [edi + 4]
push 0x4d85c8
call fcn.00475770
mov ecx, eax
call fcn.004750e0
cmp eax, 6
je 0x439012
mov ebx, dword [edi + 4]
push 0x4d85c8
call fcn.00475770
mov ecx, eax
call fcn.004750e0
cmp eax, 7
je 0x439012
mov ebx, dword [edi + 4]
push 0x4d85c4
call fcn.00475770
mov ecx, eax
call fcn.004750e0
test eax, eax
je 0x439012
mov esi, edi
call fcn.0041f7d0
mov esi, eax
mov ecx, dword [esi + 0x34]
sub ecx, dword [esi + 0x30]
sar ecx, 2
cmp ecx, 4
ja 0x4391f9
call fcn.0049f799
mov edx, dword [esi + 0x30]
mov eax, dword [edx + 0x10]
cdq
mov esi, eax
mov eax, dword [edi + 0x24]
or eax, dword [edi + 0x28]
mov dword [esp + 0x58], edx
jne 0x43922d
mov ebx, dword [edi + 4]
push 0x4d85cc
call fcn.00475770
mov ecx, eax
call fcn.004750e0
cdq
mov dword [edi + 0x28], edx
mov edx, dword [esp + 0x58]
mov dword [edi + 0x24], eax
mov eax, dword [edi + 0x24]
mov ecx, dword [edi + 0x28]
mov ebx, dword [0x4fff44]
add esi, eax
mov eax, dword [str.._AV__CStringT__WV__StrTraitMFC__WV__ChTraitsCRT__W_ATL_____ATL__]
adc edx, ecx
add eax, esi
adc ebx, edx
cmp ebx, dword [esp + 0x48]
mov dword [esp + 0x4c], eax
jg 0x439299
jl 0x439258
cmp eax, dword [esp + 0x44]
jae 0x439299
mov esi, dword [ebp + 0xc]
call fcn.0046e850
mov esi, eax
call fcn.0046e230
push eax
call fcn.0041b1c0
test eax, eax
jne 0x439295
mov esi, dword [ebp + 0xc]
call fcn.0046e850
push 1
push ecx
mov byte [eax + 0x1d], 1
call fcn.0046e850
mov esi, eax
call fcn.0046e230
add esp, 4
push eax
call fcn.0041b2e0
mov eax, dword [esp + 0x4c]
cmp ebx, dword [esp + 0x40]
jg 0x439012
jl 0x4392af
cmp eax, dword [esp + 0x3c]
jae 0x439012
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], ebx
mov byte [esp + 0x13], 1
jmp 0x439012
mov edi, dword [ebp + 8]
mov eax, dword [esp + 0x20]
cmp dword [eax - 0xc], 0
mov esi, dword [ebp + 0xc]
je 0x439326
push 1
lea ecx, [esp + 0x3c]
push ecx
lea ecx, [esp + 0x28]
call fcn.00429560
mov byte [esp + 0x98], 0xa
push eax
lea ecx, [esp + 0x24]
call fcn.0040f440
mov byte [esp + 0x98], bl
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x43931a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x20]
push ecx
push esi
push edi
call fcn.0043f110
mov edx, dword [esp + 0x24]
cmp dword [edx - 0xc], 0
je 0x439385
push 1
lea eax, [esp + 0x3c]
push eax
lea ecx, [esp + 0x2c]
call fcn.00429560
mov byte [esp + 0x98], 0xc
push eax
lea ecx, [esp + 0x28]
call fcn.0040f440
mov byte [esp + 0x98], bl
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x439379
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x24]
push ecx
push esi
push edi
call fcn.0043f6d0
mov edx, dword [esp + 0x28]
cmp dword [edx - 0xc], 0
je 0x439479
mov ebx, dword [esi + 4]
push 0x4d8278
call fcn.00475770
push 0x4d8284
mov ebx, eax
call fcn.00475770
mov ecx, eax
call fcn.004750e0
test eax, eax
jne 0x4393e3
mov ebx, dword [esi + 4]
push 0x4d828c
call fcn.00475770
push 0x4da0a0
mov ebx, eax
call fcn.00475770
push 0x4d8278
mov ebx, eax
call fcn.00475770
mov ecx, eax
call fcn.004750e0
mov esi, dword [ebp + 0xc]
mov edi, eax
call fcn.0046e850
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.00418ee0
push 1
lea eax, [esp + 0x3c]
push eax
lea ecx, [esp + 0x30]
call fcn.00429560
mov byte [esp + 0x98], 0xe
push eax
lea ecx, [esp + 0x2c]
call fcn.0040f440
mov byte [esp + 0x98], 3
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x439464
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
lea ecx, [esp + 0x28]
push ecx
push edx
push eax
call fcn.00440f60
mov esi, dword [ebp + 0xc]
mov esi, dword [esi + 0x18]
mov ecx, dword [esi + 0x18]
sub ecx, dword [esi + 0x14]
add esi, 8
xor edi, edi
sar ecx, 2
mov dword [esp + 0x2c], edi
test ecx, ecx
jbe 0x439625
jmp 0x4394a4
mov edi, dword [esp + 0x2c]
mov edx, dword [esi + 0x10]
sub edx, dword [esi + 0xc]
sar edx, 2
cmp edi, edx
jb 0x4394b6
call fcn.0049f799
mov eax, dword [esi + 0xc]
mov edi, dword [eax + edi*4]
mov ebx, dword [edi + 4]
push 0x4d85bc
call fcn.00475770
mov ecx, eax
call fcn.004750e0
test eax, eax
jle 0x439602
mov ebx, dword [edi + 4]
push 0x4da050
call fcn.00475770
mov ecx, eax
call fcn.004750e0
test eax, eax
jle 0x439553
mov ebx, dword [edi + 4]
push 0x4da04c
call fcn.00475770
mov ecx, eax
call fcn.004750e0
mov esi, edi
mov ebx, eax
call fcn.0042fbb0
cmp ebx, eax
jle 0x439602
mov ebx, dword [0x505f3c]
push 0x4d8248
call fcn.00475770
mov ecx, eax
call fcn.00475280
push eax
call fcn.0042fb20
test al, al
jne 0x439602
mov esi, dword [ebp + 0xc]
call fcn.0046e850
mov ecx, dword [ebp + 8]
push eax
push ecx
mov ecx, edi
call fcn.00440c60
jmp 0x439602
cmp dword [edi + 0x14], 0
jne 0x43958e
mov ebx, dword [edi + 4]
push 0x4d85bc
call fcn.00475770
mov ecx, eax
call fcn.004750e0
test eax, eax
je 0x43958e
mov ebx, dword [edi + 4]
push 0x4d85bc
call fcn.00475770
mov ecx, eax
call fcn.004750e0
push eax
call fcn.00415c00
mov dword [edi + 0x14], eax
mov eax, dword [edi + 0x14]
mov eax, dword [eax + 4]
push 0x4da01c
mov ebx, eax
call fcn.00475770
mov ecx, eax
call fcn.004750e0
push 0
cdq
push 0xe10
push edx
push eax
call fcn.004a3490
mov edi, dword [edi + 4]
push 0x4da054
mov ebx, edi
mov esi, eax
mov dword [esp + 0x5c], edx
call fcn.00475770
mov ecx, eax
call fcn.004750e0
cdq
add esi, eax
mov eax, dword [esp + 0x58]
adc eax, edx
add esi, dword [str.._AV__CStringT__WV__StrTraitMFC__WV__ChTraitsCRT__W_ATL_____ATL__]
adc eax, dword [0x4fff44]
cmp eax, dword [esp + 0x40]
jg 0x439602
jl 0x4395f5
cmp esi, dword [esp + 0x3c]
jae 0x439602
mov dword [esp + 0x3c], esi
mov dword [esp + 0x40], eax
mov byte [esp + 0x13], 1
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + 0x18]
mov ecx, dword [esp + 0x2c]
lea esi, [eax + 8]
mov eax, dword [esi + 0x10]
sub eax, dword [esi + 0xc]
inc ecx
sar eax, 2
mov dword [esp + 0x2c], ecx
cmp ecx, eax
jb 0x4394a0
mov esi, dword [ebp + 0xc]
call fcn.0046e850
cmp byte [esp + 0x13], 0
mov esi, eax
je 0x439679
cmp dword [esi + 0x10], 0
jne 0x439669
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 dword [esi + 0x10], eax
mov ecx, dword [esp + 0x3c]
mov esi, dword [esi + 0x10]
push ecx
push esi
call fcn.0041b080
jmp 0x4396b7
cmp dword [esi + 0x10], 0
jne 0x4396ac
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 dword [esi + 0x10], eax
mov esi, dword [esi + 0x10]
push 1
push esi
call fcn.0041b2e0
mov esi, dword [ebp + 0xc]
mov byte [0x5056b5], 1
call fcn.0046e850
mov esi, eax
cmp dword [esi + 0x10], 0
jne 0x4396fb
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 dword [esi + 0x10], eax
mov eax, dword [esi + 0x10]
push eax
call fcn.0041b1c0
mov edi, dword [ebp + 8]
mov ecx, esi
cmp eax, 2
jne 0x43971d
mov esi, dword [edi + 0xc10]
xor eax, eax
call fcn.0041c9f0
jmp 0x43972a
mov edx, dword [edi + 0xc10]
xor eax, eax
call fcn.0041cad0
mov edx, dword [edi + 0x2b8]
push 0x4da33c
push 0x100
push 0x40b
push edx
call dword [0x4c85fc]
call fcn.00417840
mov ecx, eax
call fcn.00417620
test eax, eax
je 0x439760
mov eax, dword [ebp + 0xc]
push eax
push edi
call fcn.0044a090
mov byte [esp + 0x98], 2
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x439788
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x98], 1
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4397b0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x98], 0
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4397d8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x98], 0xffffffff
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x439803
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x90]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8