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

Disassembly:
push 0xffffffffffffffff
push 0x46befb
mov eax, dword fs:[0]
push eax
sub esp, 0x2bc
mov eax, dword [0x489ec0]
xor eax, esp
mov dword [esp + 0x2b8], eax
push ebx
push esi
push edi
mov eax, dword [0x489ec0]
xor eax, esp
push eax
lea eax, [esp + 0x2cc]
mov dword fs:[0], eax
mov esi, ecx
mov eax, dword [0x48b668]
mov edx, dword [eax + 0xc]
mov ecx, 0x48b668
mov dword [esp + 0x2d4], 1
mov dword [esp + 0x14], 0
call edx
add eax, 0x10
mov dword [esp + 0x30], eax
mov eax, dword [0x48b668]
mov edx, dword [eax + 0xc]
mov ecx, 0x48b668
call edx
add eax, 0x10
mov dword [esp + 0x34], eax
mov eax, dword [0x48b668]
mov edx, dword [eax + 0xc]
mov ecx, 0x48b668
call edx
add eax, 0x10
mov dword [esp + 0x38], eax
mov eax, dword [0x48b668]
mov edx, dword [eax + 0xc]
mov ecx, 0x48b668
mov byte [esp + 0x2d4], 2
call edx
lea edi, [eax + 0x10]
mov dword [esp + 0x1c], edi
mov ecx, esi
mov byte [esp + 0x2d4], 3
call fcn.0040a760
lea eax, [esp + 0x18]
push eax
call fcn.00405ec0
add esp, 4
mov eax, dword [esp + 0x18]
cmp dword [eax - 0xc], 0xf0
mov byte [esp + 0x2d4], 4
jl 0x40ac28
add eax, 0xfffffff0
mov byte [esp + 0x2d4], 3
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40ab98
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [edi - 0x10]
mov byte [esp + 0x2d4], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40abbc
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x24]
call fcn.00405b80
mov eax, dword [esp + 0x2dc]
add eax, 0xfffffff0
mov byte [esp + 0x2d4], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40abf0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x2e0]
add eax, 0xfffffff0
mov dword [esp + 0x2d4], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40ac1e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, 0x80004005
jmp 0x40b36a
mov ecx, dword [esp + 0x2e0]
mov edx, dword [esp + 0x2dc]
push ecx
push edx
push eax
push str._sdeploy__s__s.xml
lea eax, [esp + 0xd0]
push 0x104
push eax
call fcn.0044f022
lea ebx, [esi + 0x3c]
lea eax, [esp + 0xd8]
add esp, 0x18
mov dword [esp + 0x20], ebx
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x40ac64
sub eax, edx
sar eax, 1
push eax
lea ecx, [esp + 0xc4]
push ecx
mov ecx, ebx
call fcn.00406460
push ebx
call fcn.00414e70
add esp, 4
test al, al
jne 0x40ac9d
mov dword [esp + 0x14], 0x80040068
jmp 0x40b2b4
lea ecx, [esp + 0x58]
call fcn.00405e20
mov eax, dword [ebx]
push ecx
mov ecx, esp
mov dword [ecx], eax
lea ecx, [esp + 0x5c]
mov byte [esp + 0x2d8], 5
mov dword [esp + 0x14], esp
call fcn.004203f0
test al, al
je 0x40b211
push ecx
mov eax, esp
lea ecx, [esp + 0x5c]
mov dword [esp + 0x14], esp
mov dword [eax], 0
call fcn.00419510
lea ecx, [esp + 0x58]
call fcn.00418f50
push ecx
mov eax, esp
lea ecx, [esp + 0x5c]
mov dword [esp + 0x14], esp
mov dword [eax], str.header
call fcn.00419510
mov edi, 8
test al, al
je 0x40b02c
lea ecx, [esp + 0x58]
call fcn.00418f50
push ecx
mov eax, esp
lea ecx, [esp + 0x5c]
mov dword [esp + 0x14], esp
mov dword [eax], str.productID
call fcn.00419510
test al, al
je 0x40ad6b
lea edx, [esp + 0x3c]
push edx
lea ecx, [esp + 0x5c]
call fcn.00405ea0
mov byte [esp + 0x2d4], 6
cmp dword [eax + 0x18], edi
jb 0x40ad4f
mov eax, dword [eax + 4]
jmp 0x40ad52
add eax, 4
push eax
mov ecx, esi
call fcn.00407e50
lea ecx, [esp + 0x3c]
mov byte [esp + 0x2d4], 5
call fcn.00419610
push ecx
mov eax, esp
lea ecx, [esp + 0x5c]
mov dword [esp + 0x14], esp
mov dword [eax], str.componentID
call fcn.00419510
test al, al
je 0x40adc2
lea eax, [esp + 0x3c]
push eax
lea ecx, [esp + 0x5c]
call fcn.00405ea0
mov byte [esp + 0x2d4], 7
cmp dword [eax + 0x18], edi
jb 0x40ada5
mov eax, dword [eax + 4]
jmp 0x40ada8
add eax, 4
push eax
lea ecx, [esi + 4]
call fcn.00407e50
lea ecx, [esp + 0x3c]
mov byte [esp + 0x2d4], 5
call fcn.00419610
push ecx
mov eax, esp
lea ecx, [esp + 0x5c]
mov dword [esp + 0x14], esp
mov dword [eax], 0x46fe08
call fcn.00419510
test al, al
je 0x40ae19
lea ecx, [esp + 0x3c]
push ecx
lea ecx, [esp + 0x5c]
call fcn.00405ea0
mov byte [esp + 0x2d4], 8
cmp dword [eax + 0x18], edi
jb 0x40adfc
mov eax, dword [eax + 4]
jmp 0x40adff
add eax, 4
push eax
lea ecx, [esi + 0xc]
call fcn.00407e50
lea ecx, [esp + 0x3c]
mov byte [esp + 0x2d4], 5
call fcn.00419610
push ecx
mov eax, esp
lea ecx, [esp + 0x5c]
mov dword [esp + 0x14], esp
mov dword [eax], str.upType
call fcn.00419510
test al, al
je 0x40ae70
lea edx, [esp + 0x3c]
push edx
lea ecx, [esp + 0x5c]
call fcn.00405ea0
mov byte [esp + 0x2d4], 9
cmp dword [eax + 0x18], edi
jb 0x40ae53
mov eax, dword [eax + 4]
jmp 0x40ae56
add eax, 4
push eax
lea ecx, [esi + 8]
call fcn.00407e50
lea ecx, [esp + 0x3c]
mov byte [esp + 0x2d4], 5
call fcn.00419610
push ecx
mov eax, esp
lea ecx, [esp + 0x5c]
mov dword [esp + 0x14], esp
mov dword [eax], str.update
call fcn.00419510
test al, al
je 0x40aec7
lea eax, [esp + 0x3c]
push eax
lea ecx, [esp + 0x5c]
call fcn.00405ea0
mov byte [esp + 0x2d4], 0xa
cmp dword [eax + 0x18], edi
jb 0x40aeaa
mov eax, dword [eax + 4]
jmp 0x40aead
add eax, 4
push eax
lea ecx, [esi + 0x10]
call fcn.00407e50
lea ecx, [esp + 0x3c]
mov byte [esp + 0x2d4], 5
call fcn.00419610
push ecx
mov eax, esp
lea ecx, [esp + 0x5c]
mov dword [esp + 0x14], esp
mov dword [eax], str.tmpDir
call fcn.00419510
test al, al
je 0x40af1e
lea ecx, [esp + 0x3c]
push ecx
lea ecx, [esp + 0x5c]
call fcn.00405ea0
mov byte [esp + 0x2d4], 0xb
cmp dword [eax + 0x18], edi
jb 0x40af01
mov eax, dword [eax + 4]
jmp 0x40af04
add eax, 4
push eax
lea ecx, [esi + 0x18]
call fcn.00407e50
lea ecx, [esp + 0x3c]
mov byte [esp + 0x2d4], 5
call fcn.00419610
push ecx
mov eax, esp
lea ecx, [esp + 0x5c]
mov dword [esp + 0x14], esp
mov dword [eax], str.bakDir
call fcn.00419510
test al, al
je 0x40af75
lea edx, [esp + 0x3c]
push edx
lea ecx, [esp + 0x5c]
call fcn.00405ea0
mov byte [esp + 0x2d4], 0xc
cmp dword [eax + 0x18], edi
jb 0x40af58
mov eax, dword [eax + 4]
jmp 0x40af5b
add eax, 4
push eax
lea ecx, [esi + 0x1c]
call fcn.00407e50
lea ecx, [esp + 0x3c]
mov byte [esp + 0x2d4], 5
call fcn.00419610
push ecx
mov eax, esp
lea ecx, [esp + 0x5c]
mov dword [esp + 0x14], esp
mov dword [eax], str.appDir
call fcn.00419510
test al, al
je 0x40afcc
lea eax, [esp + 0x3c]
push eax
lea ecx, [esp + 0x5c]
call fcn.00405ea0
mov byte [esp + 0x2d4], 0xd
cmp dword [eax + 0x18], edi
jb 0x40afaf
mov eax, dword [eax + 4]
jmp 0x40afb2
add eax, 4
push eax
lea ecx, [esi + 0x20]
call fcn.00407e50
lea ecx, [esp + 0x3c]
mov byte [esp + 0x2d4], 5
call fcn.00419610
push ecx
mov eax, esp
lea ecx, [esp + 0x5c]
mov dword [esp + 0x14], esp
mov dword [eax], str.note
call fcn.00419510
test al, al
je 0x40b023
lea ecx, [esp + 0x3c]
push ecx
lea ecx, [esp + 0x5c]
call fcn.00405ea0
mov byte [esp + 0x2d4], 0xe
cmp dword [eax + 0x18], edi
jb 0x40b006
mov eax, dword [eax + 4]
jmp 0x40b009
add eax, 4
push eax
lea ecx, [esi + 0x14]
call fcn.00407e50
lea ecx, [esp + 0x3c]
mov byte [esp + 0x2d4], 5
call fcn.00419610
lea ecx, [esp + 0x58]
call fcn.00418f90
push ecx
mov eax, esp
lea ecx, [esp + 0x5c]
mov dword [esp + 0x14], esp
mov dword [eax], str.files
call fcn.00419510
test al, al
je 0x40b23f
lea ecx, [esp + 0x58]
call fcn.00418f50
mov bl, 0x11
push ecx
mov eax, esp
lea ecx, [esp + 0x5c]
mov dword [esp + 0x14], esp
mov dword [eax], 0x46fd94
call fcn.00419510
test al, al
je 0x40b23b
lea ecx, [esp + 0x58]
call fcn.00418f50
push ecx
mov eax, esp
lea ecx, [esp + 0x5c]
mov dword [esp + 0x14], esp
mov dword [eax], 0x46fd88
call fcn.00419510
test al, al
je 0x40b0de
lea edx, [esp + 0x3c]
push edx
lea ecx, [esp + 0x5c]
call fcn.00405ea0
mov byte [esp + 0x2d4], 0xf
cmp dword [eax + 0x18], edi
jb 0x40b0b6
mov eax, dword [eax + 4]
jmp 0x40b0b9
add eax, 4
push eax
lea ecx, [esp + 0x34]
call fcn.00407e50
mov byte [esp + 0x2d4], 5
cmp dword [esp + 0x54], edi
jb 0x40b0de
mov eax, dword [esp + 0x40]
push eax
call fcn.0044db5e
add esp, 4
push ecx
mov eax, esp
lea ecx, [esp + 0x5c]
mov dword [esp + 0x14], esp
mov dword [eax], str.size
call fcn.00419510
test al, al
je 0x40b133
lea ecx, [esp + 0x3c]
push ecx
lea ecx, [esp + 0x5c]
call fcn.00405ea0
cmp dword [eax + 0x18], edi
jb 0x40b110
mov eax, dword [eax + 4]
jmp 0x40b113
add eax, 4
push eax
call fcn.0044f056
add esp, 4
mov dword [esp + 0x24], eax
cmp dword [esp + 0x54], edi
jb 0x40b133
mov edx, dword [esp + 0x40]
push edx
call fcn.0044db5e
add esp, 4
push ecx
mov eax, esp
lea ecx, [esp + 0x5c]
mov dword [esp + 0x14], esp
mov dword [eax], str.method
call fcn.00419510
test al, al
je 0x40b195
lea eax, [esp + 0x3c]
push eax
lea ecx, [esp + 0x5c]
call fcn.00405ea0
mov byte [esp + 0x2d4], 0x10
cmp dword [eax + 0x18], edi
jb 0x40b16d
mov eax, dword [eax + 4]
jmp 0x40b170
add eax, 4
push eax
lea ecx, [esp + 0x38]
call fcn.00407e50
mov byte [esp + 0x2d4], 5
cmp dword [esp + 0x54], edi
jb 0x40b195
mov ecx, dword [esp + 0x40]
push ecx
call fcn.0044db5e
add esp, 4
push ecx
mov eax, esp
lea ecx, [esp + 0x5c]
mov dword [esp + 0x14], esp
mov dword [eax], 0x46fd64
call fcn.00419510
test al, al
je 0x40b1f6
lea edx, [esp + 0x3c]
push edx
lea ecx, [esp + 0x5c]
call fcn.00405ea0
mov byte [esp + 0x2d4], bl
cmp dword [eax + 0x18], edi
jb 0x40b1ce
mov eax, dword [eax + 4]
jmp 0x40b1d1
add eax, 4
push eax
lea ecx, [esp + 0x3c]
call fcn.00407e50
mov byte [esp + 0x2d4], 5
cmp dword [esp + 0x54], edi
jb 0x40b1f6
mov eax, dword [esp + 0x40]
push eax
call fcn.0044db5e
add esp, 4
lea ecx, [esp + 0x58]
call fcn.00418f90
lea ecx, [esp + 0x24]
push ecx
lea ecx, [esi + 0x24]
call fcn.0040a9f0
jmp 0x40b055
mov eax, dword [esp + 0x78]
mov edi, 8
cmp dword [esp + 0x8c], edi
jae 0x40b227
lea eax, [esp + 0x78]
push eax
lea ecx, [esp + 0x20]
call fcn.00407e50
mov dword [esp + 0x14], 0x80040064
jmp 0x40b23f
mov ebx, dword [esp + 0x20]
lea ecx, [esp + 0x58]
mov byte [esp + 0x2d4], 4
call fcn.0041c1a0
xor esi, esi
cmp dword [esp + 0x14], esi
jl 0x40b2b4
xor edx, edx
mov dword [esp + 0x54], 7
mov dword [esp + 0x50], esi
mov word [esp + 0x40], dx
mov eax, dword [ebx]
push esi
push esi
lea ecx, [esp + 0x44]
push esi
push ecx
push ecx
mov ecx, esp
mov byte [esp + 0x2e8], 0x12
mov dword [esp + 0x24], esp
mov dword [ecx], eax
call fcn.0041fb40
add esp, 0x14
cmp dword [esp + 0x54], edi
jb 0x40b2a1
mov edx, dword [esp + 0x40]
push edx
call fcn.0044db5e
add esp, 4
xor eax, eax
mov dword [esp + 0x54], 7
mov dword [esp + 0x50], esi
mov word [esp + 0x40], ax
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
mov byte [esp + 0x2d4], 3
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40b2dc
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
mov byte [esp + 0x2d4], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40b304
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x24]
call fcn.00405b80
mov eax, dword [esp + 0x2dc]
add eax, 0xfffffff0
mov byte [esp + 0x2d4], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40b338
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x2e0]
add eax, 0xfffffff0
mov dword [esp + 0x2d4], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40b366
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x2cc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x2b8]
xor ecx, esp
call fcn.0044e030
add esp, 0x2c8
ret 8