Function at 0x403380
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5b2835
mov eax, dword fs:[0]
push eax
sub esp, 0x5a4
mov eax, dword [0x62c930]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov edi, ecx
xor esi, esi
mov dword [ebp - 0x520], edi
mov dword [ebp - 0x448], 0xf
mov dword [ebp - 0x44c], esi
mov byte [ebp - 0x45c], 0
push esi
push esi
push esi
push esi
push 1
push str.HttpClient
lea ecx, [ebp - 0x554]
mov dword [ebp - 4], esi
call fcn.00577b8e
push esi
push 4
lea eax, [ebp - 0x50c]
push eax
mov byte [ebp - 4], 1
push 2
lea ecx, [ebp - 0x554]
mov dword [ebp - 0x50c], 0xbb8
call fcn.00577377
mov dword [ebp - 0x51c], esi
lea esi, [edi + 0x28]
push 0x6357cc
mov ecx, esi
mov byte [ebp - 4], 2
call fcn.00401a80
push esi
call fcn.00406100
push eax
call fcn.00406190
mov eax, dword [edi + 0x24]
sub eax, 0x10
push eax
call fcn.00401a10
add eax, 0x10
add esp, 4
mov dword [ebp - 0x50c], eax
mov byte [ebp - 4], 3
mov ecx, dword [esi]
push ecx
push str._v_s
lea edi, [ebp - 0x50c]
call fcn.00408340
mov ebx, dword [ebp - 0x50c]
add esp, 8
push 0
push 0
push 0x84000001
push 1
push ebx
lea ecx, [ebp - 0x554]
call fcn.0057850a
mov esi, eax
lea edx, [ebp - 0x540]
push edx
mov ecx, esi
mov dword [ebp - 0x51c], esi
call fcn.005773e9
mov edi, 0xc8
cmp dword [ebp - 0x540], edi
jne 0x403504
push 0x103
lea eax, [ebp - 0x11f]
push 0
push eax
mov byte [ebp - 0x120], 0
call fcn.00587fb0
add esp, 0xc
mov edx, dword [esi]
mov edx, dword [edx + 0x34]
push 0x103
lea eax, [ebp - 0x120]
push eax
mov ecx, esi
call edx
test eax, eax
je 0x403504
lea eax, [ebp - 0x120]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4034e6
sub eax, edx
push eax
lea eax, [ebp - 0x120]
push eax
lea ecx, [ebp - 0x460]
call fcn.00408180
jmp 0x4034c4
mov edx, dword [esi]
mov eax, dword [edx + 0x4c]
mov ecx, esi
call eax
mov edx, dword [esi]
mov eax, dword [edx + 4]
push 1
mov ecx, esi
call eax
lea ecx, [ebp - 0x554]
call fcn.00578165
cmp dword [ebp - 0x540], edi
je 0x40357b
mov byte [ebp - 4], 2
lea eax, [ebx - 0x10]
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40354b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [ebp - 0x554]
mov byte [ebp - 4], 0
call fcn.00578248
cmp dword [ebp - 0x448], 0x10
jb 0x404df4
mov ecx, dword [ebp - 0x45c]
push ecx
call fcn.005759d0
add esp, 4
jmp 0x404df4
mov ecx, dword [ebp - 0x44c]
cmp ecx, 3
jbe 0x40363c
test ecx, ecx
ja 0x403599
call fcn.005a5998
mov ecx, dword [ebp - 0x44c]
mov eax, dword [ebp - 0x45c]
mov esi, 0x10
cmp dword [ebp - 0x448], esi
jae 0x4035b2
lea eax, [ebp - 0x45c]
cmp byte [eax], 0xef
jne 0x403641
cmp ecx, 1
ja 0x4035cb
call fcn.005a5998
mov ecx, dword [ebp - 0x44c]
mov eax, dword [ebp - 0x45c]
cmp dword [ebp - 0x448], esi
jae 0x4035df
lea eax, [ebp - 0x45c]
cmp byte [eax + 1], 0xbb
jne 0x403641
cmp ecx, 2
ja 0x4035ef
call fcn.005a5998
mov eax, dword [ebp - 0x45c]
cmp dword [ebp - 0x448], esi
jae 0x403603
lea eax, [ebp - 0x45c]
cmp byte [eax + 2], 0xbf
jne 0x403641
push 0xffffffffffffffff
mov ecx, 3
lea esi, [ebp - 0x444]
lea edx, [ebp - 0x460]
call fcn.00405e80
push 0xffffffffffffffff
push 0
push eax
lea ecx, [ebp - 0x460]
mov byte [ebp - 4], 4
call fcn.00407ce0
mov ecx, esi
call fcn.00408350
mov esi, 0x10
lea eax, [ebx - 0x10]
mov byte [ebp - 4], 2
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x403661
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0
mov dword [ebp - 4], 1
call fcn.00583f2d
add esp, 4
push eax
call fcn.00583ef9
add esp, 4
xor ecx, ecx
push 0x206
push ecx
lea edx, [ebp - 0x426]
push edx
mov word [ebp - 0x428], cx
call fcn.00587fb0
add esp, 0xc
lea eax, [ebp - 0x428]
push eax
push 0x103
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
lea ecx, [ebp - 0x428]
push ecx
lea ecx, [ebp - 0x524]
call fcn.004016c0
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0x524]
call fcn.0041ea70
mov edx, dword [ebp - 0x524]
mov eax, dword [edx - 0xc]
test eax, eax
je 0x403720
lea ecx, [eax - 1]
test ecx, ecx
jl 0x4037ff
cmp ecx, eax
jg 0x4037ff
movzx ecx, word [edx + ecx*2]
cmp cx, 0x5c
je 0x403720
lea ecx, [eax - 1]
test ecx, ecx
jl 0x4037ff
cmp ecx, eax
jg 0x4037ff
movzx eax, word [edx + ecx*2]
cmp ax, 0x2f
je 0x403720
push 0x5c
lea ecx, [ebp - 0x524]
call fcn.00408400
call fcn.00583f0b
push eax
call fcn.00583f0b
push eax
call fcn.00583f0b
push eax
call fcn.00583f0b
push eax
push str.unique__d__d__d__d
push 0x635790
call fcn.00407c30
push 0x635790
lea edx, [ebp - 0x524]
push edx
lea eax, [ebp - 0x50c]
push eax
call fcn.00405bb0
add esp, 0x24
push eax
mov ecx, 0x635790
mov byte [ebp - 4], 8
call fcn.00401a80
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x50c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x403797
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [0x635790]
call fcn.0041ea70
mov edx, dword [0x635790]
mov eax, dword [edx - 0xc]
test eax, eax
je 0x4037e5
lea ecx, [eax - 1]
test ecx, ecx
jl 0x4037ff
cmp ecx, eax
jg 0x4037ff
movzx ecx, word [edx + ecx*2]
cmp cx, 0x5c
je 0x4037e5
lea ecx, [eax - 1]
test ecx, ecx
jl 0x4037ff
cmp ecx, eax
jg 0x4037ff
movzx eax, word [edx + ecx*2]
cmp ax, 0x2f
je 0x4037e5
push 0x5c
mov ecx, 0x635790
call fcn.00408400
call fcn.005759db
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x403809
push 0x80004005
call fcn.00401b20
push 0x80070057
call fcn.00401b20
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x528], eax
mov byte [ebp - 4], 9
call fcn.005759db
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x403839
push 0x80004005
call fcn.00401b20
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x534], eax
mov byte [ebp - 4], 0xa
call fcn.005759db
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x403869
push 0x80004005
call fcn.00401b20
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x518], eax
lea ecx, [ebp - 0x508]
push ecx
mov byte [ebp - 4], 0xc
call fcn.004253c0
mov byte [ebp - 4], 0xd
mov eax, dword [ebp - 0x45c]
cmp dword [ebp - 0x448], esi
jae 0x4038a3
lea eax, [ebp - 0x45c]
push 1
push 0
push eax
lea ecx, [ebp - 0x508]
call fcn.0042a820
mov esi, dword [ebp - 0x4f0]
lea esp, [esp]
test esi, esi
je 0x4038e1
mov edx, dword [esi]
mov eax, dword [edx + 0x18]
mov ecx, esi
call eax
test eax, eax
je 0x4038dc
mov edx, dword [esi]
mov eax, dword [edx + 0x18]
mov ecx, esi
call eax
jmp 0x4038e3
mov esi, dword [esi + 0x40]
jmp 0x4038c0
xor eax, eax
mov edi, eax
mov dword [ebp - 0x510], eax
test eax, eax
je 0x40391d
mov esi, dword [eax + 0x18]
test esi, esi
je 0x403915
mov edx, dword [esi]
mov eax, dword [edx + 0x18]
mov ecx, esi
call eax
test eax, eax
je 0x403910
mov edx, dword [esi]
mov eax, dword [edx + 0x18]
mov ecx, esi
call eax
mov edi, eax
jmp 0x403917
mov esi, dword [esi + 0x40]
jmp 0x4038f2
xor edi, edi
mov dword [ebp - 0x510], edi
mov esi, dword [ebp - 0x520]
mov eax, dword [esi + 0x68]
add esi, 0x58
mov dword [ebp - 0x50c], eax
cmp dword [esi + 0xc], eax
jbe 0x403939
call fcn.0058465c
mov ebx, dword [esi + 0xc]
mov ecx, dword [esi]
mov dword [ebp - 0x530], ecx
cmp ebx, dword [esi + 0x10]
jbe 0x40394e
call fcn.0058465c
mov edx, dword [ebp - 0x50c]
mov ecx, dword [ebp - 0x530]
mov eax, dword [esi]
push edx
push ecx
push ebx
push eax
lea edx, [ebp - 0x530]
push edx
push esi
call fcn.00406400
xor eax, eax
push 0x206
push eax
lea ecx, [ebp - 0x21e]
push ecx
mov word [ebp - 0x220], ax
call fcn.00587fb0
add esp, 0xc
push 0x103
lea edx, [ebp - 0x220]
push edx
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea eax, [ebp - 0x50c]
push eax
lea ecx, [ebp - 0x220]
call fcn.0042d520
add esp, 4
push eax
lea ecx, [ebp - 0x528]
mov byte [ebp - 4], 0xe
call fcn.00401a80
mov byte [ebp - 4], 0xd
mov eax, dword [ebp - 0x50c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4039f6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x4039f6
mov edi, dword [ebp - 0x510]
test edi, edi
je 0x404a20
cmp dword [edi + 0x38], 0x10
jb 0x403a09
mov edi, dword [edi + 0x24]
jmp 0x403a0c
add edi, 0x24
push edi
lea ecx, [ebp - 0x514]
call fcn.00408510
lea ecx, [ebp - 0x514]
push ecx
mov byte [ebp - 4], 0xf
call fcn.00406100
push eax
call fcn.00406190
push eax
lea ecx, [ebp - 0x514]
call fcn.00401a80
mov edx, dword [ebp - 0x514]
mov ecx, dword [edx - 0x10]
test ecx, ecx
je 0x403a52
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
call edx
test eax, eax
jne 0x403a60
call fcn.005759db
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x10]
call eax
lea edx, [ebp - 0x598]
push edx
mov ecx, eax
mov edx, str.version
call fcn.00406060
mov byte [ebp - 4], 0x10
mov esi, dword [ebp - 0x598]
xor eax, eax
test esi, esi
setne al
test eax, eax
jne 0x403a92
push 0x80004005
call fcn.00401b20
mov eax, dword [ebp - 0x514]
mov ecx, esi
lea ebx, [ebx]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x403ac6
test dx, dx
je 0x403ac2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x403ac6
add eax, 4
add ecx, 4
test dx, dx
jne 0x403aa0
xor eax, eax
jmp 0x403acb
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
lea eax, [esi - 0x10]
sete bl
mov byte [ebp - 4], 0xf
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x403af0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test bl, bl
je 0x403b54
mov ecx, dword [ebp - 0x510]
mov edx, dword [ecx]
mov eax, dword [edx + 0x14]
call eax
mov ecx, dword [eax + 0x18]
test ecx, ecx
je 0x403b23
mov edx, dword [ecx]
mov eax, dword [edx + 0x30]
call eax
test eax, eax
je 0x403b23
cmp dword [eax + 0x38], 0x10
jb 0x403b1e
mov eax, dword [eax + 0x24]
jmp 0x403b25
add eax, 0x24
jmp 0x403b25
xor eax, eax
push eax
lea ecx, [ebp - 0x518]
call fcn.00408480
lea ecx, [ebp - 0x518]
push ecx
call fcn.00406100
push eax
call fcn.00406190
push eax
lea ecx, [ebp - 0x518]
call fcn.00401a80
jmp 0x4049e3
push 0x6026e4
lea esi, [ebp - 0x514]
call fcn.00405db0
add esp, 4
test al, al
je 0x403d67
mov ecx, dword [ebp - 0x510]
mov edx, dword [ecx]
mov eax, dword [edx + 0x14]
call eax
mov ecx, dword [eax + 0x18]
test ecx, ecx
je 0x403b9e
mov edx, dword [ecx]
mov eax, dword [edx + 0x30]
call eax
test eax, eax
je 0x403b9e
cmp dword [eax + 0x38], 0x10
jb 0x403b99
mov eax, dword [eax + 0x24]
jmp 0x403ba0
add eax, 0x24
jmp 0x403ba0
xor eax, eax
push eax
lea ecx, [ebp - 0x538]
call fcn.00408510
lea ecx, [ebp - 0x538]
push ecx
mov byte [ebp - 4], 0x11
call fcn.00406100
push eax
call fcn.00406190
push eax
lea ecx, [ebp - 0x538]
call fcn.00401a80
mov eax, dword [ebp - 0x538]
cmp dword [eax - 0xc], 0
jne 0x403d26
add eax, 0xfffffff0
mov byte [ebp - 4], 0xf
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x403bfe
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0xd
mov eax, dword [ebp - 0x514]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x403c24
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0xc
mov esi, 0x10
mov dword [ebp - method.TiXmlDocument.virtual_0], vtable.TiXmlDocument.0
cmp dword [ebp - 0x4a4], esi
jb 0x403c4e
mov ecx, dword [ebp - 0x4b8]
push ecx
call fcn.005759d0
add esp, 4
lea ecx, [ebp - 0x508]
mov dword [ebp - 0x4a4], 0xf
mov dword [ebp - 0x4a8], 0
mov byte [ebp - 0x4b8], 0
call fcn.00424ae0
mov byte [ebp - 4], 0xa
mov eax, dword [ebp - 0x518]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x403c9a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 9
mov eax, dword [ebp - 0x534]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x403cc0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x528]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x403ce6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x524]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x403d0c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [ebp - 0x554]
mov byte [ebp - 4], 0
call fcn.00578248
cmp dword [ebp - 0x448], esi
jmp 0x403561
lea edx, [ebp - 0x538]
push edx
lea ecx, [ebp - 0x534]
call fcn.00401a80
mov byte [ebp - 4], 0xf
mov eax, dword [ebp - 0x538]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4049e3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x4049e3
mov eax, dword [ebp - 0x514]
mov ecx, 0x6026e8
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x403d98
test dx, dx
je 0x403d94
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x403d98
add eax, 4
add ecx, 4
test dx, dx
jne 0x403d72
xor eax, eax
jmp 0x403d9d
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
sete al
test al, al
je 0x403f68
lea esi, [ebp - 0x440]
call fcn.00401b90
mov ecx, dword [ebp - 0x510]
mov byte [ebp - 4], 0x12
mov edx, dword [ecx]
mov eax, dword [edx + 0x14]
call eax
lea edi, [eax + 0x44]
mov esi, 0x6026f8
call fcn.00426340
test eax, eax
je 0x403de7
cmp dword [eax + 0x48], 0x10
jb 0x403de2
mov eax, dword [eax + 0x34]
jmp 0x403de9
add eax, 0x34
jmp 0x403de9
xor eax, eax
mov esi, eax
lea edi, [ebp - 0x560]
call fcn.0041ee20
push eax
lea ecx, [ebp - 0x438]
mov byte [ebp - 4], 0x13
call fcn.00401a80
mov byte [ebp - 4], 0x12
mov eax, dword [ebp - 0x560]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x403e2c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ebx, dword [ebp - 0x510]
mov edx, dword [ebx]
mov eax, dword [edx + 0x14]
mov ecx, ebx
call eax
lea edi, [eax + 0x44]
mov esi, 0x602700
call fcn.00426340
test eax, eax
je 0x403e5c
cmp dword [eax + 0x48], 0x10
jb 0x403e57
mov eax, dword [eax + 0x34]
jmp 0x403e5e
add eax, 0x34
jmp 0x403e5e
xor eax, eax
mov esi, eax
lea edi, [ebp - 0x568]
call fcn.0041ee20
push eax
lea ecx, [ebp - 0x434]
mov byte [ebp - 4], 0x14
call fcn.00401a80
mov byte [ebp - 4], 0x12
mov eax, dword [ebp - 0x568]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x403ea1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [ebx]
mov eax, dword [edx + 0x14]
mov ecx, ebx
call eax
lea edi, [eax + 0x44]
mov esi, 0x602704
call fcn.00426340
test eax, eax
je 0x403ecb
cmp dword [eax + 0x48], 0x10
jb 0x403ec6
mov eax, dword [eax + 0x34]
jmp 0x403ecd
add eax, 0x34
jmp 0x403ecd
xor eax, eax
push eax
lea ecx, [ebp - 0x430]
call fcn.00408480
mov ecx, dword [0x635790]
push 0
push ecx
mov byte [ebp - 0x43c], 1
call fcn.00584007
add esp, 8
test eax, eax
jne 0x404484
lea edx, [ebp - 0x438]
push edx
lea eax, [ebp - 0x57c]
push 0x635790
push eax
call fcn.00405bb0
add esp, 0xc
mov esi, dword [ebp - 0x520]
lea ecx, [esi + 0x34]
push eax
mov byte [ebp - 4], 0x15
call fcn.00401a80
mov byte [ebp - 4], 0x12
mov eax, dword [ebp - 0x57c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x403f4d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea edx, [ebp - 0x438]
lea ecx, [esi + 0x38]
push edx
call fcn.00401a80
lea eax, [ebp - 0x440]
push eax
jmp 0x40447c
lea ecx, [ebp - 0x514]
push 0x602708
push ecx
call fcn.00405d50
add esp, 8
test al, al
je 0x40421a
lea esi, [ebp - 0x440]
call fcn.00401b90
mov ecx, dword [ebp - 0x510]
mov byte [ebp - 4], 0x16
mov edx, dword [ecx]
mov eax, dword [edx + 0x14]
call eax
lea edi, [eax + 0x44]
mov esi, 0x6026f8
call fcn.00426340
test eax, eax
je 0x403fc1
cmp dword [eax + 0x48], 0x10
jb 0x403fbc
mov eax, dword [eax + 0x34]
jmp 0x403fc3
add eax, 0x34
jmp 0x403fc3
xor eax, eax
mov esi, eax
lea edi, [ebp - 0x584]
call fcn.0041ee20
push eax
lea ecx, [ebp - 0x438]
mov byte [ebp - 4], 0x17
call fcn.00401a80
mov byte [ebp - 4], 0x16
mov eax, dword [ebp - 0x584]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x404006
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ebx, dword [ebp - 0x510]
mov edx, dword [ebx]
mov eax, dword [edx + 0x14]
mov ecx, ebx
call eax
lea edi, [eax + 0x44]
mov esi, 0x602700
call fcn.00426340
test eax, eax
je 0x404036
cmp dword [eax + 0x48], 0x10
jb 0x404031
mov eax, dword [eax + 0x34]
jmp 0x404038
add eax, 0x34
jmp 0x404038
xor eax, eax
mov esi, eax
lea edi, [ebp - 0x58c]
call fcn.0041ee20
push eax
lea ecx, [ebp - 0x434]
mov byte [ebp - 4], 0x18
call fcn.00401a80
mov byte [ebp - 4], 0x16
mov eax, dword [ebp - 0x58c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40407b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [ebx]
mov eax, dword [edx + 0x14]
mov ecx, ebx
call eax
lea edi, [eax + 0x44]
mov esi, 0x602704
call fcn.00426340
test eax, eax
je 0x4040a5
cmp dword [eax + 0x48], 0x10
jb 0x4040a0
mov eax, dword [eax + 0x34]
jmp 0x4040a7
add eax, 0x34
jmp 0x4040a7
xor eax, eax
push eax
lea ecx, [ebp - 0x430]
call fcn.00408480
lea esi, [ebp - 0x564]
call fcn.0041e9b0
push str.3dm_
push eax
lea ecx, [ebp - 0x5a0]
push ecx
mov byte [ebp - 4], 0x19
call fcn.00405c70
add esp, 0xc
lea edx, [ebp - 0x434]
push edx
push eax
lea eax, [ebp - 0x558]
push eax
mov byte [ebp - 4], 0x1a
call fcn.00405bb0
add esp, 0xc
push 0x60249c
push eax
lea ecx, [ebp - 0x5a4]
push ecx
mov byte [ebp - 4], 0x1b
call fcn.00405c70
add esp, 0xc
lea edx, [ebp - 0x438]
push edx
push eax
lea eax, [ebp - 0x59c]
push eax
mov byte [ebp - 4], 0x1c
call fcn.00405bb0
add esp, 0xc
push eax
lea ecx, [ebp - 0x594]
push ecx
mov byte [ebp - 4], 0x1d
call fcn.00402320
add esp, 8
mov esi, dword [ebp - 0x520]
lea ecx, [esi + 0x50]
push eax
mov byte [ebp - 4], 0x1e
call fcn.00401a80
mov byte [ebp - 4], 0x1d
mov eax, dword [ebp - 0x594]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x404173
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0x1c
mov eax, dword [ebp - 0x59c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x404199
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0x1b
mov eax, dword [ebp - 0x5a4]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4041bf
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0x1a
mov eax, dword [ebp - 0x558]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4041e5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0x19
mov eax, dword [ebp - 0x5a0]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40420b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0x16
mov eax, dword [ebp - 0x564]
jmp 0x404459
lea edx, [ebp - 0x514]
push str.begin_rgnfile
push edx
call fcn.00405d50
add esp, 8
test al, al
je 0x404494
lea esi, [ebp - 0x440]
call fcn.00401b90
mov ecx, dword [ebp - 0x510]
mov byte [ebp - 4], 0x1f
mov eax, dword [ecx]
mov edx, dword [eax + 0x14]
call edx
lea edi, [eax + 0x44]
mov esi, 0x6026f8
call fcn.00426340
test eax, eax
je 0x404273
cmp dword [eax + 0x48], 0x10
jb 0x40426e
mov eax, dword [eax + 0x34]
jmp 0x404275
add eax, 0x34
jmp 0x404275
xor eax, eax
push eax
lea ecx, [ebp - 0x438]
call fcn.00408480
mov ebx, dword [ebp - 0x510]
mov eax, dword [ebx]
mov edx, dword [eax + 0x14]
mov ecx, ebx
call edx
lea edi, [eax + 0x44]
mov esi, 0x602700
call fcn.00426340
test eax, eax
je 0x4042b1
cmp dword [eax + 0x48], 0x10
jb 0x4042ac
mov eax, dword [eax + 0x34]
jmp 0x4042b3
add eax, 0x34
jmp 0x4042b3
xor eax, eax
push eax
lea ecx, [ebp - 0x434]
call fcn.00408480
mov eax, dword [ebx]
mov edx, dword [eax + 0x14]
mov ecx, ebx
call edx
lea edi, [eax + 0x44]
mov esi, 0x602704
call fcn.00426340
test eax, eax
je 0x4042e9
cmp dword [eax + 0x48], 0x10
jb 0x4042e4
mov eax, dword [eax + 0x34]
jmp 0x4042eb
add eax, 0x34
jmp 0x4042eb
xor eax, eax
push eax
lea ecx, [ebp - 0x430]
call fcn.00408480
lea esi, [ebp - 0x590]
call fcn.0041e9b0
push str.3dm_
push eax
lea eax, [ebp - 0x578]
push eax
mov byte [ebp - 4], 0x20
call fcn.00405c70
add esp, 0xc
lea ecx, [ebp - 0x434]
push ecx
push eax
lea edx, [ebp - 0x574]
push edx
mov byte [ebp - 4], 0x21
call fcn.00405bb0
add esp, 0xc
push 0x60249c
push eax
lea eax, [ebp - 0x570]
push eax
mov byte [ebp - 4], 0x22
call fcn.00405c70
add esp, 0xc
lea ecx, [ebp - 0x438]
push ecx
push eax
lea edx, [ebp - 0x56c]
push edx
mov byte [ebp - 4], 0x23
call fcn.00405bb0
add esp, 0xc
push eax
lea eax, [ebp - 0x588]
push eax
mov byte [ebp - 4], 0x24
call fcn.00402320
add esp, 8
mov esi, dword [ebp - 0x520]
lea ecx, [esi + 0x54]
push eax
mov byte [ebp - 4], 0x25
call fcn.00401a80
mov byte [ebp - 4], 0x24
mov eax, dword [ebp - 0x588]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4043b7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0x23
mov eax, dword [ebp - 0x56c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4043dd
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0x22
mov eax, dword [ebp - 0x570]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x404403
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0x21
mov eax, dword [ebp - 0x574]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x404429
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0x20
mov eax, dword [ebp - 0x578]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40444f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0x1f
mov eax, dword [ebp - 0x590]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x404475
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [ebp - 0x440]
push ecx
lea edi, [esi + 0x58]
call fcn.00405f10
lea esi, [ebp - 0x440]
call fcn.00404ea0
jmp 0x4049e3
push 0x602744
lea esi, [ebp - 0x514]
call fcn.00405db0
add esp, 4
test al, al
je 0x404628
mov eax, dword [ebp - 0x510]
call fcn.00407ae0
mov ebx, eax
lea esp, [esp]
cmp dword [ebx + 0x38], 0x10
jb 0x4044cb
mov eax, dword [ebx + 0x24]
jmp 0x4044ce
lea eax, [ebx + 0x24]
push eax
lea ecx, [ebp - 0x51c]
call fcn.00408510
lea edx, [ebp - 0x51c]
push edx
mov byte [ebp - 4], 0x26
call fcn.00406100
push eax
call fcn.00406190
push eax
lea ecx, [ebp - 0x51c]
call fcn.00401a80
push 4
push 0x60274c
lea ecx, [ebp - 0x51c]
call fcn.00401960
cmp dword [ebp - 0x51c], 0
je 0x4045f2
lea esi, [ebp - 0x440]
call fcn.00401b90
mov byte [ebp - 4], 0x27
mov eax, dword [ebx]
mov edx, dword [eax + 0x14]
mov ecx, ebx
call edx
lea edi, [eax + 0x44]
mov esi, 0x6026f8
call fcn.00426340
test eax, eax
je 0x404554
cmp dword [eax + 0x48], 0x10
jb 0x40454f
mov eax, dword [eax + 0x34]
jmp 0x404556
add eax, 0x34
jmp 0x404556
xor eax, eax
push eax
lea ecx, [ebp - 0x438]
call fcn.00408480
mov eax, dword [ebx]
mov edx, dword [eax + 0x14]
mov ecx, ebx
call edx
lea edi, [eax + 0x44]
mov esi, 0x602700
call fcn.00426340
test eax, eax
je 0x40458c
cmp dword [eax + 0x48], 0x10
jb 0x404587
mov eax, dword [eax + 0x34]
jmp 0x40458e
add eax, 0x34
jmp 0x40458e
xor eax, eax
push eax
lea ecx, [ebp - 0x434]
call fcn.00408480
mov eax, dword [ebx]
mov edx, dword [eax + 0x14]
mov ecx, ebx
call edx
lea edi, [eax + 0x44]
mov esi, 0x602704
call fcn.00426340
test eax, eax
je 0x4045c4
cmp dword [eax + 0x48], 0x10
jb 0x4045bf
mov eax, dword [eax + 0x34]
jmp 0x4045c6
add eax, 0x34
jmp 0x4045c6
xor eax, eax
push eax
lea ecx, [ebp - 0x430]
call fcn.00408480
mov edi, dword [ebp - 0x520]
lea eax, [ebp - 0x440]
push eax
add edi, 0x58
call fcn.00405f10
lea esi, [ebp - 0x440]
call fcn.00404ea0
mov ebx, dword [ebx + 0x40]
mov byte [ebp - 4], 0xf
mov eax, dword [ebp - 0x51c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40461b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test ebx, ebx
jne 0x4044c0
jmp 0x4049e3
push 0x602758
lea esi, [ebp - 0x514]
call fcn.00405db0
add esp, 4
test al, al
je 0x4049e3
mov eax, dword [ebp - 0x510]
call fcn.00407ae0
mov ebx, eax
cmp dword [ebx + 0x38], 0x10
jb 0x40465b
mov eax, dword [ebx + 0x24]
jmp 0x40465e
lea eax, [ebx + 0x24]
push eax
lea ecx, [ebp - 0x50c]
call fcn.00408510
lea ecx, [ebp - 0x50c]
push ecx
mov byte [ebp - 4], 0x28
call fcn.00406100
push eax
call fcn.00406190
push eax
lea ecx, [ebp - 0x50c]
call fcn.00401a80
push 4
push 0x60274c
lea ecx, [ebp - 0x50c]
call fcn.00401960
cmp dword [ebp - 0x50c], 0
je 0x4049b2
lea esi, [ebp - 0x490]
call fcn.00404f20
mov byte [ebp - 4], 0x29
mov edx, dword [ebx]
mov eax, dword [edx + 0x14]
mov ecx, ebx
call eax
lea edi, [eax + 0x44]
mov esi, 0x6026f8
call fcn.00426340
test eax, eax
je 0x404729
cmp dword [eax + 0x48], 0x10
jb 0x4046df
mov eax, dword [eax + 0x34]
jmp 0x4046e2
add eax, 0x34
test eax, eax
je 0x404729
mov esi, eax
lea edi, [ebp - 0x580]
call fcn.0041ee20
push eax
lea ecx, [ebp - 0x474]
mov byte [ebp - 4], 0x2a
call fcn.00401a80
mov byte [ebp - 4], 0x29
mov eax, dword [ebp - 0x580]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x404729
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [ebx]
mov eax, dword [edx + 0x14]
mov ecx, ebx
call eax
lea edi, [eax + 0x44]
mov esi, str.param
call fcn.00426340
test eax, eax
je 0x404798
cmp dword [eax + 0x48], 0x10
jb 0x40474e
mov eax, dword [eax + 0x34]
jmp 0x404751
add eax, 0x34
test eax, eax
je 0x404798
mov esi, eax
lea edi, [ebp - 0x55c]
call fcn.0041ee20
push eax
lea ecx, [ebp - 0x470]
mov byte [ebp - 4], 0x2b
call fcn.00401a80
mov byte [ebp - 4], 0x29
mov eax, dword [ebp - 0x55c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x404798
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [ebx]
mov eax, dword [edx + 0x14]
mov ecx, ebx
call eax
lea edi, [eax + 0x44]
mov esi, 0x602764
call fcn.00426340
test eax, eax
je 0x4047c2
cmp dword [eax + 0x48], 0x10
jb 0x4047bd
mov eax, dword [eax + 0x34]
jmp 0x4047c4
add eax, 0x34
jmp 0x4047c4
xor eax, eax
mov byte [ebp - 0x464], 0
test eax, eax
je 0x404844
push eax
lea ecx, [ebp - 0x444]
call fcn.00407aa0
mov esi, dword [ebp - 0x430]
mov eax, esi
cmp esi, 4
jb 0x4047ed
mov eax, 4
mov edi, dword [ebp - 0x42c]
mov edx, dword [ebp - 0x440]
cmp edi, 0x10
jae 0x404804
lea edx, [ebp - 0x440]
push eax
mov ecx, 0x6028cc
call fcn.004074c0
add esp, 4
test eax, eax
jne 0x40482c
cmp esi, 4
jb 0x40482c
cmp esi, 4
setne al
test eax, eax
jne 0x40482c
mov byte [ebp - 0x464], 1
mov byte [ebp - 4], 0x29
cmp edi, 0x10
jb 0x404844
mov ecx, dword [ebp - 0x440]
push ecx
call fcn.005759d0
add esp, 4
mov edx, dword [ebx]
mov eax, dword [edx + 0x14]
mov ecx, ebx
call eax
lea edi, [eax + 0x44]
mov esi, str.filename
call fcn.00426340
test eax, eax
je 0x4048b3
cmp dword [eax + 0x48], 0x10
jb 0x404869
mov eax, dword [eax + 0x34]
jmp 0x40486c
add eax, 0x34
test eax, eax
je 0x4048b3
mov esi, eax
lea edi, [ebp - 0x53c]
call fcn.0041ee20
push eax
lea ecx, [ebp - 0x46c]
mov byte [ebp - 4], 0x2d
call fcn.00401a80
mov byte [ebp - 4], 0x29
mov eax, dword [ebp - 0x53c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4048b3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [ebx]
mov eax, dword [edx + 0x14]
mov ecx, ebx
call eax
lea edi, [eax + 0x44]
mov esi, str.checkfile
call fcn.00426340
test eax, eax
je 0x404922
cmp dword [eax + 0x48], 0x10
jb 0x4048d8
mov eax, dword [eax + 0x34]
jmp 0x4048db
add eax, 0x34
test eax, eax
je 0x404922
mov esi, eax
lea edi, [ebp - 0x52c]
call fcn.0041ee20
push eax
lea ecx, [ebp - 0x468]
mov byte [ebp - 4], 0x2e
call fcn.00401a80
mov byte [ebp - 4], 0x29
mov eax, dword [ebp - 0x52c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x404922
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [ebx]
mov eax, dword [edx + 0x14]
mov ecx, ebx
call eax
lea edi, [eax + 0x44]
mov esi, 0x602704
call fcn.00426340
test eax, eax
je 0x404992
mov esi, 0x10
cmp dword [eax + 0x48], esi
jb 0x40494b
mov eax, dword [eax + 0x34]
jmp 0x40494e
add eax, 0x34
test eax, eax
je 0x404992
lea ecx, [ebp - 0x444]
push ecx
mov ecx, eax
call fcn.0041f260
add esp, 4
push 0xffffffffffffffff
push 0
push eax
lea ecx, [ebp - 0x490]
mov byte [ebp - 4], 0x2f
call fcn.00407ce0
mov byte [ebp - 4], 0x29
cmp dword [ebp - 0x42c], esi
jb 0x404992
mov edx, dword [ebp - 0x440]
push edx
call fcn.005759d0
add esp, 4
mov edi, dword [ebp - 0x520]
lea eax, [ebp - 0x490]
push eax
add edi, 0x70
call fcn.00405fc0
lea esi, [ebp - 0x490]
call fcn.00404fc0
mov ebx, dword [ebx + 0x40]
mov byte [ebp - 4], 0xf
mov eax, dword [ebp - 0x50c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4049db
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test ebx, ebx
jne 0x404650
mov ecx, dword [ebp - 0x510]
mov esi, dword [ecx + 0x40]
mov byte [ebp - 4], 0xd
mov eax, dword [ebp - 0x514]
add eax, 0xfffffff0
mov dword [ebp - 0x510], esi
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x404a18
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test esi, esi
jne 0x4039f0
mov byte [ebp - 4], 0xc
cmp dword [ebp - 0x4a4], 0x10
mov dword [ebp - method.TiXmlDocument.virtual_0], vtable.TiXmlDocument.0
jb 0x404a46
mov ecx, dword [ebp - 0x4b8]
push ecx
call fcn.005759d0
add esp, 4
lea ecx, [ebp - 0x508]
mov dword [ebp - 0x4a4], 0xf
mov dword [ebp - 0x4a8], 0
mov byte [ebp - 0x4b8], 0
call fcn.00424ae0
lea edx, [ebp - 0x518]
push edx
lea eax, [ebp - 0x52c]
push eax
mov dword [ebp - 4], 0xb
call fcn.0041feb0
mov eax, dword [ebp - 0x52c]
add eax, 0xfffffff0
add esp, 8
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x404aab
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ebx, dword [ebp - 0x520]
lea esi, [ebx + 0x28]
lea ecx, [ebp - 0x52c]
push esi
push ecx
call fcn.0041feb0
mov eax, dword [ebp - 0x52c]
add eax, 0xfffffff0
add esp, 8
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x404ae6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x518]
push ecx
add eax, 0xfffffff0
mov dword [ebp - 0x52c], esp
mov edi, esp
push eax
call fcn.00401a10
add eax, 0x10
add esp, 4
mov dword [edi], eax
call fcn.00403130
fstp dword [ebp - 0x53c]
mov eax, dword [esi]
sub eax, 0x10
mov dword [ebp - 0x52c], esp
mov edi, esp
push eax
call fcn.00401a10
add eax, 0x10
add esp, 4
mov dword [edi], eax
call fcn.00403240
fstp dword [ebp - 0x52c]
fld dword [ebp - 0x52c]
add esp, 4
fld dword [ebp - 0x53c]
fcompp
fnstsw ax
test ah, 0x41
jne 0x404d1d
push str.___r_n
lea ecx, [ebp - 0x528]
push ecx
lea edx, [ebp - 0x52c]
push edx
call fcn.00405c70
add esp, 0xc
lea ecx, [ebp - 0x534]
push ecx
push eax
lea edx, [ebp - 0x50c]
push edx
mov byte [ebp - 4], 0x31
call fcn.00405bb0
add esp, 0xc
mov byte [ebp - 4], 0x33
mov eax, dword [ebp - 0x52c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x404baf
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edi, dword [ebp - 0x534]
xor eax, eax
test edi, edi
setne al
test eax, eax
jne 0x404bca
push 0x80004005
call fcn.00401b20
mov ecx, dword [ebp - 0x528]
push edi
push ecx
call fcn.00584130
add esp, 8
test eax, eax
je 0x404cf5
lea edx, [ebx + 0x24]
lea ecx, [ebx + 0x4c]
push edx
mov byte [ebx + 0x44], 1
call fcn.00401a80
lea eax, [ebp - 0x518]
lea ecx, [ebx + 0x48]
push eax
call fcn.00401a80
lea ecx, [ebp - 0x518]
push ecx
mov ecx, esi
call fcn.00401a80
mov byte [ebp - 4], 0xb
mov eax, dword [ebp - 0x50c]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x404c35
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0xa
mov eax, dword [ebp - 0x518]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x404c5b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [edi - 0x10]
mov byte [ebp - 4], 9
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x404c7b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x528]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x404ca1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x524]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x404cc7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [ebp - 0x554]
mov byte [ebp - 4], 0
call fcn.00578248
cmp dword [ebp - 0x448], 0x10
jb 0x404cee
mov ecx, dword [ebp - 0x45c]
push ecx
call fcn.005759d0
add esp, 4
mov al, 1
jmp 0x404df6
mov byte [ebp - 4], 0xb
mov eax, dword [ebp - 0x50c]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x404d23
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x404d23
mov edi, dword [ebp - 0x534]
mov byte [ebp - 4], 0xa
mov eax, dword [ebp - 0x518]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x404d49
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [edi - 0x10]
mov byte [ebp - 4], 9
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x404d69
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x528]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x404d8f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x524]
add eax, 0xfffffff0
jmp 0x403532
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.005832f8
mov esp, ebp
pop ebp
ret