Function at 0x404590
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x563abb
mov eax, dword fs:[0]
push eax
sub esp, 0xa0
mov eax, dword [0x5d6b80]
xor eax, esp
mov dword [esp + 0x98], eax
push ebx
push esi
push edi
mov eax, dword [0x5d6b80]
xor eax, esp
push eax
lea eax, [esp + 0xb0]
mov dword fs:[0], eax
mov edi, ecx
mov dword [esp + 0x24], edi
mov eax, dword [ebp + 8]
mov esi, dword [ebp + 0xc]
mov dword [esp + 0x28], eax
mov dword [esp + 0x84], 0
push 0x400
push 0
lea ecx, [esp + 0x90]
mov dword [esp + 0xc0], 0
call fcn.004063a0
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa4], 0
lea ebx, [edi + 0x2c]
mov dword [esp + 0xb8], 1
cmp dword [ebx + 0x14], 0x10
jb 0x404637
mov eax, dword [ebx]
jmp 0x404639
mov eax, ebx
mov dword [esp + 0x1c], eax
lea ecx, [esp + 0x78]
mov dword [esp + 0x20], eax
lea eax, [esp + 0x1c]
push eax
call fcn.00408cd0
cmp dword [eax + 0x28], 0
je 0x404667
push str.JSON_not_parsed
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
xor bl, bl
jmp 0x4049c6
push str.metaData
lea ecx, [esp + 0x7c]
call fcn.004062f0
test eax, eax
jne 0x40468b
push str.__document.HasMember_metaData__
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
xor bl, bl
jmp 0x4049c6
push esi
mov ecx, edi
call fcn.004042c0
mov eax, dword [edi + 0x84]
dec eax
push eax
push ecx
lea eax, [esp + 0x68]
push eax
lea ecx, [edi + 0x74]
call fcn.00404f70
mov byte [esp + 0xb8], 2
lea ecx, [esp + 0x78]
mov edi, dword [esp + 0x88]
push str.metaData
mov dword [esp + 0x20], edi
call fcn.004062f0
test eax, eax
je 0x4046d3
lea ecx, [eax + 0x10]
jmp 0x404700
mov eax, dword [0x5e1344]
test al, 1
jne 0x4046fb
or eax, 1
mov dword [0x5e1330], 0
push 0x5770a0
mov dword [0x5e1344], eax
call fcn.0052611a
add esp, 4
mov ecx, 0x5e1324
push str.current
call fcn.004062f0
lea ecx, [esp + 0x78]
test eax, eax
jne 0x40472c
push edi
push esi
push str.current
push str.metaData
call fcn.00405990
mov ecx, eax
call fcn.004075e0
jmp 0x40474a
push esi
push str.current
push str.metaData
call fcn.00405990
mov ecx, eax
call fcn.00405990
mov ecx, eax
call fcn.00407670
push str.metaData
lea ecx, [esp + 0x7c]
call fcn.004062f0
test eax, eax
je 0x404761
lea ecx, [eax + 0x10]
jmp 0x40478e
mov eax, dword [0x5e1344]
test al, 1
jne 0x404789
or eax, 1
mov dword [0x5e1330], 0
push 0x5770a0
mov dword [0x5e1344], eax
call fcn.0052611a
add esp, 4
mov ecx, 0x5e1324
push str.hash
call fcn.004062f0
test eax, eax
lea ecx, [esp + 0x78]
lea eax, [esp + 0x60]
jne 0x4047c8
cmp dword [esp + 0x74], 0x10
push edi
cmovae eax, dword [esp + 0x64]
push eax
push str.hash
push str.metaData
call fcn.00405990
mov ecx, eax
call fcn.004075e0
jmp 0x4047f0
cmp dword [esp + 0x74], 0x10
cmovae eax, dword [esp + 0x60]
push eax
push str.hash
push str.metaData
call fcn.00405990
mov ecx, eax
call fcn.00405990
mov ecx, eax
call fcn.00407670
lea eax, [esp + 0x14]
push eax
call fcn.00529c60
add esp, 4
lea eax, [esp + 0x14]
push eax
call fcn.005299c1
add esp, 4
add dword [eax + 0x10], 6
push eax
call fcn.00529fe9
add esp, 4
lea ecx, [esp + 0x78]
mov esi, eax
mov edi, edx
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], edi
push str.metaData
call fcn.004062f0
test eax, eax
je 0x40483a
lea ecx, [eax + 0x10]
jmp 0x40486f
mov eax, dword [0x5e1344]
test al, 1
jne 0x40486a
or eax, 1
mov dword [0x5e1330], 0
push 0x5770a0
mov dword [0x5e1344], eax
call fcn.0052611a
mov edi, dword [esp + 0x1c]
add esp, 4
mov esi, dword [esp + 0x14]
mov ecx, 0x5e1324
push str.searchDefaultExpir
call fcn.004062f0
test eax, eax
jne 0x4048ab
push dword [esp + 0x1c]
push eax
push 0x3e8
push edi
push esi
call fcn.00533be0
push edx
push eax
push ecx
push str.metaData
lea ecx, [esp + 0x8c]
call fcn.00405990
mov ecx, eax
call fcn.004076b0
jmp 0x4048e7
push 0
push 0x3e8
push edi
push esi
call fcn.00533be0
push str.searchDefaultExpir
push str.metaData
lea ecx, [esp + 0x80]
mov esi, eax
mov edi, edx
call fcn.00405990
mov ecx, eax
call fcn.00405990
test eax, eax
je 0x4048e7
push edi
push esi
mov ecx, eax
call fcn.004078e0
sub esp, 8
lea ecx, [esp + 0x34]
call fcn.00406280
push 0x100
lea eax, [esp + 0x30]
mov byte [esp + 0xbc], 3
push 0
lea ecx, [esp + 0x50]
mov dword [esp + 0x4c], eax
call fcn.004063a0
lea eax, [esp + 0x44]
mov byte [esp + 0xb8], 4
push eax
lea ecx, [esp + 0x7c]
call fcn.00407730
lea ecx, [esp + 0x2c]
call fcn.00404fb0
mov edx, eax
cmp byte [edx], 0
jne 0x40493d
xor ecx, ecx
jmp 0x40494b
mov ecx, edx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x404942
sub ecx, esi
push ecx
push edx
mov ecx, ebx
call fcn.004066d0
push str.encoding_and_saving...
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
push dword [esp + 0x28]
mov ecx, dword [esp + 0x28]
call fcn.00404c30
mov esi, dword [esp + 0x4c]
mov bl, al
test esi, esi
je 0x404986
mov ecx, esi
call fcn.00406690
push esi
call fcn.0052586e
add esp, 4
push dword [esp + 0x34]
call fcn.0052616f
add esp, 4
push dword [esp + 0x30]
call fcn.0052586e
add esp, 4
cmp dword [esp + 0x74], 0x10
jb 0x4049b1
push dword [esp + 0x60]
call fcn.0052586e
add esp, 4
mov dword [esp + 0x74], 0xf
mov dword [esp + 0x70], 0
mov byte [esp + 0x60], 0
mov esi, dword [esp + 0x8c]
test esi, esi
je 0x4049e1
mov ecx, esi
call fcn.00406690
push esi
call fcn.0052586e
add esp, 4
mov al, bl
mov ecx, dword [esp + 0xb0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x98]
xor ecx, esp
call fcn.00525878
mov esp, ebp
pop ebp
ret 8