Function at 0x46a0b0
Capabilities:
Create directory

Disassembly:
push 0xffffffffffffffff
push 0x4a39cf
mov eax, dword fs:[0]
push eax
sub esp, 0x8c
mov eax, dword [0x4d32ac]
xor eax, esp
mov dword [esp + 0x88], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4d32ac]
xor eax, esp
push eax
lea eax, [esp + 0xa0]
mov dword fs:[0], eax
mov eax, dword [esp + 0xb0]
mov ebp, dword [esp + 0xb4]
lea edi, [esp + 0x28]
mov dword [esp + 0x1c], eax
call fcn.0042b270
mov dword [esp + 0xa8], 0
mov edx, dword [esp + 0x28]
mov eax, dword [edx - 0xc]
test eax, eax
jle 0x46a140
lea ecx, [eax - 1]
test ecx, ecx
jl 0x46a1d6
cmp ecx, eax
jg 0x46a1d6
movzx eax, word [edx + ecx*2]
cmp ax, 0x5c
je 0x46a140
push 0x5c
call fcn.00404820
lea ebx, [esp + 0x2c]
call fcn.0042af80
mov byte [esp + 0xa8], 1
mov edx, dword [esp + 0x2c]
mov eax, dword [edx - 0xc]
test eax, eax
jle 0x46a17a
lea ecx, [eax - 1]
test ecx, ecx
jl 0x46a1d6
cmp ecx, eax
jg 0x46a1d6
movzx eax, word [edx + ecx*2]
cmp ax, 0x5c
je 0x46a17a
push 0x5c
mov edi, ebx
call fcn.00404820
lea ecx, [esp + 0x34]
call fcn.0047ae70
lea ecx, [esp + 0x28]
push ecx
lea edx, [esp + 0x1c]
push edx
mov ebx, str.FaceFaceHistory.xml
mov byte [esp + 0xb0], 2
call fcn.004038a0
mov byte [esp + 0xb0], 3
mov eax, dword [eax]
push 0x4ba808
push eax
call fcn.0047fbac
mov esi, eax
add esp, 0x10
test esi, esi
je 0x46a1e0
push 1
push esi
lea ecx, [esp + 0x3c]
call fcn.0047af00
push esi
mov bl, al
call fcn.0047fc31
add esp, 4
jmp 0x46a1e2
push 0x80070057
call fcn.00404ef0
xor bl, bl
mov byte [esp + 0xa8], 2
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x46a20a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test bl, bl
je 0x46a668
lea ecx, [esp + 0x34]
call fcn.0047a270
mov esi, eax
test esi, esi
jne 0x46a286
push 0x50
call fcn.0047f14d
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
mov byte [esp + 0xa8], 4
je 0x46a24b
push str.Face
mov ecx, eax
call fcn.0047b9c0
mov esi, eax
jmp 0x46a24d
xor esi, esi
push 0x4befea
push str.type
mov ecx, esi
mov byte [esp + 0xb0], 2
call fcn.0047abc0
push 0x4befea
push str.version
mov ecx, esi
call fcn.0047abc0
push esi
lea ecx, [esp + 0x38]
call fcn.0047aa30
jmp 0x46a82c
push 0x800
call fcn.0047e2d5
add esp, 4
mov ebx, eax
push ebp
mov ecx, esi
mov dword [esp + 0x1c], ebx
call fcn.0047a2a0
mov edi, eax
test edi, edi
mov dword [esp + 0x24], edi
jne 0x46a2e7
push 0x50
call fcn.0047f14d
add esp, 4
mov dword [esp + 0x24], eax
test eax, eax
mov byte [esp + 0xa8], 5
je 0x46a2cf
push ebp
mov ecx, eax
call fcn.0047b9c0
jmp 0x46a2d1
xor eax, eax
mov edi, eax
mov byte [esp + 0xa8], 2
push eax
mov ecx, esi
mov dword [esp + 0x28], edi
call fcn.0047aa30
mov ecx, edi
call fcn.0047a270
test edi, edi
mov ebp, eax
mov dword [esp + 0x20], ebp
je 0x46a4cc
push 0x50
call fcn.0047f14d
add esp, 4
test ebp, ebp
jne 0x46a3eb
mov dword [esp + 0x20], eax
test eax, eax
mov byte [esp + 0xa8], 6
je 0x46a332
push str.item
mov ecx, eax
call fcn.0047b9c0
mov edi, eax
mov dword [esp + 0x20], eax
jmp 0x46a338
xor edi, edi
mov dword [esp + 0x20], edi
cmp dword [esp + 0x1c], 0
mov byte [esp + 0xa8], 2
jne 0x46a34d
xor esi, esi
xor eax, eax
jmp 0x46a3a4
mov ecx, dword [esp + 0x1c]
mov ebp, dword [0x4a7104]
push 0
push 0
push 0
push 0
push 0xffffffffffffffff
push ecx
push 0
push 0xfde9
call ebp
mov edi, eax
lea ebx, [edi + 1]
push ebx
call fcn.0047e2d5
push ebx
mov esi, eax
push 0
push esi
call fcn.00485090
mov edx, dword [esp + 0x2c]
add esp, 0x10
push 0
push 0
push edi
push esi
push 0xffffffffffffffff
push edx
push 0
push 0xfde9
call ebp
mov ebx, dword [esp + 0x18]
mov edi, dword [esp + 0x20]
mov eax, esi
push eax
push 0x4ba854
mov ecx, edi
call fcn.0047abc0
push 0x4c27c8
push str.active
mov ecx, edi
call fcn.0047abc0
push 0x4befea
push str.lastmodify
mov ecx, edi
call fcn.0047abc0
mov ecx, dword [esp + 0x24]
push edi
call fcn.0047aa30
push esi
call fcn.0047fac6
add esp, 4
jmp 0x46a65a
mov dword [esp + 0x30], eax
test eax, eax
mov byte [esp + 0xa8], 7
je 0x46a40b
push str.item
mov ecx, eax
call fcn.0047b9c0
mov edi, eax
jmp 0x46a40d
xor edi, edi
cmp dword [esp + 0x1c], 0
mov byte [esp + 0xa8], 2
jne 0x46a422
xor esi, esi
xor eax, eax
jmp 0x46a47b
mov eax, dword [esp + 0x1c]
push 0
push 0
push 0
push 0
push 0xffffffffffffffff
push eax
push 0
push 0xfde9
call dword [0x4a7104]
mov ebx, eax
lea ebp, [ebx + 1]
push ebp
call fcn.0047e2d5
push ebp
mov esi, eax
push 0
push esi
call fcn.00485090
mov ecx, dword [esp + 0x2c]
add esp, 0x10
push 0
push 0
push ebx
push esi
push 0xffffffffffffffff
push ecx
push 0
push 0xfde9
call dword [0x4a7104]
mov ebx, dword [esp + 0x18]
mov ebp, dword [esp + 0x20]
mov eax, esi
push eax
push 0x4ba854
mov ecx, edi
call fcn.0047abc0
push 0x4c27c8
push str.active
mov ecx, edi
call fcn.0047abc0
push 0x4befea
push str.lastmodify
mov ecx, edi
call fcn.0047abc0
mov ecx, dword [esp + 0x24]
push edi
push ebp
call fcn.0047aaa0
test edi, edi
je 0x46a4c3
mov edx, dword [edi]
mov eax, dword [edx]
push 1
mov ecx, edi
call eax
push esi
call fcn.0047fac6
add esp, 4
test ebp, ebp
je 0x46a65a
mov ebp, dword [0x4a72d0]
mov ecx, dword [esp + 0x20]
mov edi, 0x10
mov eax, 0x4ba854
lea esi, [esp + 0x80]
call fcn.004699e0
mov byte [esp + 0xa8], 8
cmp dword [esp + 0x94], 0
jbe 0x46a5af
push 0x800
push 0
push ebx
call fcn.00485090
add esp, 0xc
cmp dword [esp + 0x98], edi
jb 0x46a532
mov edi, dword [esp + 0x84]
test edi, edi
jne 0x46a539
xor ebx, ebx
jmp 0x46a574
lea edi, [esp + 0x84]
push 0
push 0
push 0xffffffffffffffff
push edi
push 0
push 0xfde9
call ebp
mov esi, eax
lea ecx, [esi + 1]
cmp ecx, 0x400
jg 0x46a574
lea edx, [esi + esi + 2]
push edx
push 0
push ebx
call fcn.00485090
add esp, 0xc
push esi
push ebx
push 0xffffffffffffffff
push edi
push 0
push 0xfde9
call ebp
mov ecx, dword [esp + 0x1c]
mov eax, ebx
lea ebx, [ebx]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x46a5a6
test dx, dx
je 0x46a5a2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x46a5a6
add eax, 4
add ecx, 4
test dx, dx
jne 0x46a580
xor eax, eax
jmp 0x46a5ab
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x46a60c
mov edi, 0x10
mov byte [esp + 0xa8], 2
cmp dword [esp + 0x98], edi
jb 0x46a5d5
mov eax, dword [esp + 0x84]
push eax
call fcn.0047eacc
add esp, 4
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x98], 0xf
mov dword [esp + 0x94], 0
mov byte [esp + 0x84], 0
call fcn.0047a2e0
mov ecx, eax
test ecx, ecx
mov dword [esp + 0x20], ecx
jne 0x46a4e3
jmp 0x46a65a
mov ecx, dword [esp + 0x20]
push ecx
mov ecx, dword [esp + 0x28]
call fcn.0047a170
mov byte [esp + 0xa8], 2
cmp dword [esp + 0x98], 0x10
jb 0x46a63c
mov edx, dword [esp + 0x84]
push edx
call fcn.0047eacc
add esp, 4
mov dword [esp + 0x98], 0xf
mov dword [esp + 0x94], 0
mov byte [esp + 0x84], 0
test ebx, ebx
je 0x46a82c
push ebx
jmp 0x46a824
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x1c]
push ecx
mov ebx, str.Face_
call fcn.004038a0
mov eax, dword [eax]
add esp, 8
push 0
push eax
push 0
call dword [0x4a7338]
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x46a6ac
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x50
call fcn.0047f14d
add esp, 4
mov dword [esp + 0x30], eax
test eax, eax
mov byte [esp + 0xa8], 9
je 0x46a6d6
push str.Face
mov ecx, eax
call fcn.0047b9c0
mov esi, eax
jmp 0x46a6d8
xor esi, esi
push 0x4befea
push str.type
mov ecx, esi
mov byte [esp + 0xb0], 2
call fcn.0047abc0
push 0x4befea
push str.version
mov ecx, esi
call fcn.0047abc0
push esi
lea ecx, [esp + 0x38]
call fcn.0047aa30
push 0x50
call fcn.0047f14d
add esp, 4
mov dword [esp + 0x30], eax
test eax, eax
mov byte [esp + 0xa8], 0xa
je 0x46a736
push ebp
mov ecx, eax
call fcn.0047b9c0
mov ebx, eax
mov dword [esp + 0x24], eax
jmp 0x46a73c
xor ebx, ebx
mov dword [esp + 0x24], ebx
push ebx
mov ecx, esi
mov byte [esp + 0xac], 2
call fcn.0047aa30
push 0x50
call fcn.0047f14d
add esp, 4
mov dword [esp + 0x30], eax
test eax, eax
mov byte [esp + 0xa8], 0xb
je 0x46a77a
push str.item
mov ecx, eax
call fcn.0047b9c0
mov edi, eax
mov dword [esp + 0x18], eax
jmp 0x46a780
xor edi, edi
mov dword [esp + 0x18], edi
cmp dword [esp + 0x1c], 0
mov byte [esp + 0xa8], 2
jne 0x46a795
xor esi, esi
xor eax, eax
jmp 0x46a7ec
mov ecx, dword [esp + 0x1c]
mov ebp, dword [0x4a7104]
push 0
push 0
push 0
push 0
push 0xffffffffffffffff
push ecx
push 0
push 0xfde9
call ebp
mov edi, eax
lea ebx, [edi + 1]
push ebx
call fcn.0047e2d5
push ebx
mov esi, eax
push 0
push esi
call fcn.00485090
mov edx, dword [esp + 0x2c]
add esp, 0x10
push 0
push 0
push edi
push esi
push 0xffffffffffffffff
push edx
push 0
push 0xfde9
call ebp
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x24]
mov eax, esi
push eax
push 0x4ba854
mov ecx, edi
call fcn.0047abc0
push 0x4c27c8
push str.active
mov ecx, edi
call fcn.0047abc0
push 0x4befea
push str.lastmodify
mov ecx, edi
call fcn.0047abc0
push edi
mov ecx, ebx
call fcn.0047aa30
push esi
call fcn.0047fac6
add esp, 4
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x1c]
push ecx
mov ebx, str.FaceFaceHistory.xml
call fcn.004038a0
mov byte [esp + 0xb0], 0xc
mov eax, dword [eax]
push 0x4c2778
push eax
call fcn.0047fbac
mov esi, eax
add esp, 0x10
test esi, esi
je 0x46a871
push esi
lea ecx, [esp + 0x38]
call fcn.0047a3a0
push esi
call fcn.0047fc31
add esp, 4
mov byte [esp + 0xa8], 2
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x46a899
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xa8], 1
mov eax, dword [esp + 0x68]
cmp eax, 0x4dbc60
mov dword [esp + 0x34], vtable.TiXmlDocument.0
je 0x46a8bd
push eax
call fcn.0047fac6
add esp, 4
lea ecx, [esp + 0x34]
call fcn.0047a9a0
mov byte [esp + 0xa8], 0
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 0x46a8ee
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0xa8], 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 0x46a919
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0xa0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x88]
xor ecx, esp
call fcn.0047f0e0
add esp, 0x98
ret