Function at 0x407e30
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x49989e
mov eax, dword fs:[0]
push eax
sub esp, 0x608
mov eax, dword [0x4cb08c]
xor eax, esp
mov dword [esp + 0x600], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4cb08c]
xor eax, esp
push eax
lea eax, [esp + 0x61c]
mov dword fs:[0], eax
mov ebp, dword [esp + 0x62c]
xor ebx, ebx
mov eax, 0xf
mov edi, ecx
mov dword [esp + 0x38], edi
mov dword [esp + 0x138], eax
mov dword [esp + 0x134], ebx
mov byte [esp + 0x124], bl
mov dword [esp + 0x154], eax
mov dword [esp + 0x150], ebx
mov byte [esp + 0x140], bl
mov dword [esp + 0x170], eax
mov dword [esp + 0x16c], ebx
mov byte [esp + 0x15c], bl
mov dword [esp + 0x18c], eax
mov dword [esp + 0x188], ebx
mov byte [esp + 0x178], bl
mov dword [esp + 0x1a8], eax
mov dword [esp + 0x1a4], ebx
mov byte [esp + 0x194], bl
add edi, 0x9c
mov dword [esp + 0x624], ebx
mov esi, dword [edi + 4]
cmp esi, dword [edi + 8]
jbe 0x407f02
call fcn.00471ad5
mov eax, dword [edi + 8]
cmp dword [edi + 4], eax
mov dword [esp + 0x14], eax
jbe 0x407f13
call fcn.00471ad5
cmp edi, edi
je 0x407f1c
call fcn.00471ad5
cmp esi, dword [esp + 0x14]
je 0x407fcf
cmp esi, dword [edi + 8]
jb 0x407f30
call fcn.00471ad5
mov eax, dword [esi]
mov ecx, dword [esp + 0x38]
cmp eax, dword [ecx + 0xb8]
je 0x407f50
cmp esi, dword [edi + 8]
jb 0x407f48
call fcn.00471ad5
add esi, 0x90
jmp 0x407f02
cmp esi, dword [edi + 8]
jb 0x407f5a
call fcn.00471ad5
mov edx, dword [esi]
push 0xffffffffffffffff
push ebx
lea eax, [esi + 4]
push eax
lea ecx, [esp + 0x12c]
mov dword [esp + 0x128], edx
call fcn.004028e0
push 0xffffffffffffffff
push ebx
lea ecx, [esi + 0x20]
push ecx
lea ecx, [esp + 0x148]
call fcn.004028e0
push 0xffffffffffffffff
push ebx
lea edx, [esi + 0x3c]
push edx
lea ecx, [esp + 0x164]
call fcn.004028e0
push 0xffffffffffffffff
push ebx
lea eax, [esi + 0x58]
push eax
lea ecx, [esp + 0x180]
call fcn.004028e0
push 0xffffffffffffffff
push ebx
lea ecx, [esi + 0x74]
push ecx
lea ecx, [esp + 0x19c]
call fcn.004028e0
push esi
push edi
lea edx, [esp + 0x1c]
push edx
push edi
call fcn.00409820
cmp dword [esp + 0x1a4], ebx
je 0x4081a5
cmp dword [esp + 0x134], ebx
je 0x4081a5
mov dword [esp + 0xc4], 0xf
mov dword [esp + 0xc0], ebx
mov byte [esp + 0xb0], bl
mov byte [esp + 0x624], 1
mov eax, dword [ebp]
mov ecx, dword [ebp + 4]
sub ecx, eax
push ecx
mov ecx, dword [ebp + 8]
lea edx, [esp + 0xb0]
add ecx, eax
push edx
call fcn.00414ac0
mov edx, dword [esp + 0x19c]
mov ecx, 0x10
add esp, 8
cmp dword [esp + 0x1a8], ecx
jae 0x408044
lea edx, [esp + 0x194]
mov esi, dword [esp + 0xc0]
mov edi, dword [esp + 0x1a4]
cmp esi, edi
mov eax, esi
jb 0x40805a
mov eax, edi
cmp dword [esp + 0xc4], ecx
mov ecx, dword [esp + 0xb0]
jae 0x408071
lea ecx, [esp + 0xb0]
push eax
push edx
push ecx
call section..text
add esp, 0xc
cmp eax, ebx
jne 0x408093
cmp esi, edi
jb 0x408093
xor eax, eax
cmp esi, edi
setne al
cmp eax, ebx
je 0x4081dd
push 6
mov ebp, 0xf
push str.update
lea ecx, [esp + 0x24]
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x38], ebx
mov byte [esp + 0x28], bl
call fcn.00402dd0
lea eax, [esp + 0x14]
mov byte [esp + 0x624], 2
call fcn.00401a70
mov byte [esp + 0x624], 3
mov esi, dword [esp + 0xb0]
mov edi, 0x10
cmp dword [esp + 0xc4], edi
jae 0x4080e9
lea esi, [esp + 0xb0]
cmp dword [esp + 0x1a8], edi
mov ecx, dword [esp + 0x194]
jae 0x408100
lea ecx, [esp + 0x194]
mov edx, dword [eax]
push esi
push ecx
push 0x18d
push str.UpdateDisposer::SaveCurrentFile
push str._s__d__file_md5_error__jsonMd5__s_fileMd5__s_n
push 0x20
lea ecx, [esp + 0x34]
call fcn.00416b70
mov ecx, eax
call fcn.00416fe0
mov byte [esp + 0x63c], 2
mov eax, dword [esp + 0x30]
add esp, 0x18
cmp eax, ebx
je 0x408164
mov esi, eax
add eax, 4
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x408164
mov edx, dword [esi]
mov eax, dword [edx + 4]
mov ecx, esi
call eax
lea ecx, [esi + 8]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x408164
mov eax, dword [esi]
mov edx, dword [eax + 8]
mov ecx, esi
call edx
cmp dword [esp + 0x34], edi
jb 0x408177
mov eax, dword [esp + 0x20]
push eax
call fcn.004716d0
add esp, 4
cmp dword [esp + 0xc4], edi
jb 0x408190
mov ecx, dword [esp + 0xb0]
push ecx
call fcn.004716d0
add esp, 4
mov dword [esp + 0xc4], ebp
mov byte [esp + 0xb0], bl
mov dword [esp + 0xc0], ebx
lea esi, [esp + 0x11c]
call fcn.00407580
xor al, al
mov ecx, dword [esp + 0x61c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x600]
xor ecx, esp
call fcn.00471497
add esp, 0x614
ret 4
mov edx, dword [ebp]
mov ecx, dword [ebp + 8]
mov eax, dword [ebp + 4]
add ecx, edx
sub eax, edx
mov dword [esp + 0x60c], ecx
lea ecx, [esp + 0x1ac]
mov dword [esp + 0x1ac], ebx
mov dword [esp + 0x1b0], ebx
mov dword [esp + 0x608], ebx
mov dword [esp + 0x610], eax
call fcn.0040acb0
lea edx, [esp + 0x120]
push edx
mov edi, 0x4ab8cc
lea esi, [esp + 0x78]
mov byte [esp + 0x628], 4
call fcn.0040dfa0
add esp, 4
mov ecx, eax
lea edi, [esp + 0x58]
mov byte [esp + 0x624], 5
call fcn.00405790
mov ebp, dword [esp + 0x38]
push eax
add ebp, 0x34
push ebp
lea esi, [esp + 0xd0]
mov byte [esp + 0x62c], 6
call fcn.0040e050
add esp, 8
cmp dword [esp + 0x70], 8
jb 0x408281
mov eax, dword [esp + 0x5c]
push eax
call fcn.004716d0
add esp, 4
mov dword [esp + 0x70], 7
mov dword [esp + 0x6c], ebx
mov word [esp + 0x5c], bx
mov byte [esp + 0x624], 9
cmp dword [esp + 0x8c], 0x10
jb 0x4082b1
mov ecx, dword [esp + 0x78]
push ecx
call fcn.004716d0
add esp, 4
mov edx, dword [esp + 0x1b0]
mov eax, dword [esp + 0x1ac]
push edx
mov edi, 0xf
push eax
lea esi, [esp + 0xd0]
mov dword [esp + 0x94], edi
mov dword [esp + 0x90], ebx
mov byte [esp + 0x80], bl
call fcn.00407a10
add esp, 8
test al, al
jne 0x40841b
push 6
push str.update
lea ecx, [esp + 0x24]
mov dword [esp + 0x3c], edi
mov dword [esp + 0x38], ebx
mov byte [esp + 0x28], bl
call fcn.00402dd0
lea eax, [esp + 0x14]
mov byte [esp + 0x624], 0xa
call fcn.00401a70
push 0x198
push str.UpdateDisposer::SaveCurrentFile
mov byte [esp + 0x62c], 0xb
mov eax, dword [eax]
push str._s__d__file_save_error_n
push 0x40
lea ecx, [esp + 0x2c]
mov edx, eax
call fcn.00416b70
mov ecx, eax
call fcn.00416fe0
mov byte [esp + 0x634], 0xa
mov eax, dword [esp + 0x28]
add esp, 0x10
cmp eax, ebx
je 0x40838b
mov esi, eax
add eax, 4
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x40838b
mov edx, dword [esi]
mov eax, dword [edx + 4]
mov ecx, esi
call eax
lea ecx, [esi + 8]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x40838b
mov eax, dword [esi]
mov edx, dword [eax + 8]
mov ecx, esi
call edx
mov esi, 0x10
cmp dword [esp + 0x34], esi
jb 0x4083a3
mov eax, dword [esp + 0x20]
push eax
call fcn.004716d0
add esp, 4
cmp dword [esp + 0xe0], 8
jb 0x4083bd
mov ecx, dword [esp + 0xcc]
push ecx
call fcn.004716d0
add esp, 4
mov eax, dword [esp + 0x1ac]
lea edx, [esp + 0x1b4]
cmp eax, edx
mov dword [esp + 0xe0], 7
mov dword [esp + 0xdc], ebx
mov word [esp + 0xcc], bx
je 0x4083f6
cmp eax, ebx
je 0x4083f6
push eax
call fcn.0047231a
add esp, 4
cmp dword [esp + 0xc4], esi
jb 0x40840f
mov eax, dword [esp + 0xb0]
push eax
call fcn.004716d0
add esp, 4
mov dword [esp + 0xc4], edi
jmp 0x408197
lea ecx, [esp + 0x120]
lea edi, [esp + 0x1c]
call fcn.00405790
push eax
push ebp
lea esi, [esp + 0xec]
mov byte [esp + 0x62c], 0xc
call fcn.0040e050
add esp, 8
mov byte [esp + 0x624], 0xe
cmp dword [esp + 0x34], 8
jb 0x408460
mov ecx, dword [esp + 0x20]
push ecx
call fcn.004716d0
add esp, 4
lea edx, [esp + 0x120]
push edx
mov edi, 0x4ab5e8
lea esi, [esp + 0x5c]
mov dword [esp + 0x38], 7
mov dword [esp + 0x34], ebx
mov word [esp + 0x24], bx
call fcn.0040dfa0
add esp, 4
mov ecx, eax
lea edi, [esp + 0x74]
mov byte [esp + 0x624], 0xf
call fcn.00405790
push eax
push ebp
lea esi, [esp + 0x108]
mov byte [esp + 0x62c], 0x10
call fcn.0040e050
add esp, 8
cmp dword [esp + 0x8c], 8
jb 0x4084cd
mov eax, dword [esp + 0x78]
push eax
call fcn.004716d0
add esp, 4
mov edi, 7
mov dword [esp + 0x8c], edi
mov dword [esp + 0x88], ebx
mov word [esp + 0x78], bx
mov ebp, 0x10
mov byte [esp + 0x624], 0x13
cmp dword [esp + 0x70], ebp
jb 0x408505
mov ecx, dword [esp + 0x5c]
push ecx
call fcn.004716d0
add esp, 4
lea edx, [esp + 0x100]
push edx
lea ecx, [esp + 0xe8]
mov dword [esp + 0x74], 0xf
mov dword [esp + 0x70], ebx
mov byte [esp + 0x60], bl
call fcn.00421de0
add esp, 4
test al, al
jne 0x408753
lea eax, [esp + 0xe4]
push eax
call fcn.00421ab0
add esp, 4
test al, al
je 0x408753
lea ecx, [esp + 0xc8]
push ecx
call fcn.00421cc0
add esp, 4
push str.update
lea ecx, [esp + 0x94]
call fcn.004025b0
lea edx, [esp + 0x100]
push edx
lea edi, [esp + 0x40]
mov byte [esp + 0x628], 0x14
call fcn.00401a90
add esp, 4
mov esi, eax
lea eax, [esp + 0xe4]
push eax
lea edi, [esp + 0x20]
mov byte [esp + 0x628], 0x15
call fcn.00401a90
add esp, 4
mov edi, eax
lea eax, [esp + 0x14]
mov byte [esp + 0x624], 0x16
call fcn.00401a70
mov byte [esp + 0x624], 0x17
cmp dword [esi + 0x18], ebp
jb 0x4085cc
mov esi, dword [esi + 4]
jmp 0x4085cf
add esi, 4
cmp dword [edi + 0x18], ebp
jb 0x4085d9
mov ecx, dword [edi + 4]
jmp 0x4085dc
lea ecx, [edi + 4]
mov edx, dword [eax]
push esi
push ecx
push 0x1a9
push str.UpdateDisposer::SaveCurrentFile
push str._s__d__file_rename_error__s_to__s_n
push 0x40
lea ecx, [esp + 0xa8]
call fcn.00416b70
mov ecx, eax
call fcn.00416fe0
add esp, 0x18
lea eax, [esp + 0x14]
mov byte [esp + 0x624], 0x16
call fcn.004027a0
cmp dword [esp + 0x34], ebp
jb 0x40862b
mov ecx, dword [esp + 0x20]
push ecx
call fcn.004716d0
add esp, 4
cmp dword [esp + 0x54], ebp
mov esi, 0xf
mov dword [esp + 0x34], esi
mov dword [esp + 0x30], ebx
mov byte [esp + 0x20], bl
jb 0x40864f
mov edx, dword [esp + 0x40]
push edx
call fcn.004716d0
add esp, 4
cmp dword [esp + 0xa8], ebp
mov dword [esp + 0x54], esi
mov dword [esp + 0x50], ebx
mov byte [esp + 0x40], bl
jb 0x408674
mov eax, dword [esp + 0x94]
push eax
call fcn.004716d0
add esp, 4
mov esi, 8
cmp dword [esp + 0x118], esi
jb 0x408692
mov ecx, dword [esp + 0x104]
push ecx
call fcn.004716d0
add esp, 4
cmp dword [esp + 0xfc], esi
mov edi, 7
mov dword [esp + 0x118], edi
mov dword [esp + 0x114], ebx
mov word [esp + 0x104], bx
jb 0x4086c6
mov edx, dword [esp + 0xe8]
push edx
call fcn.004716d0
add esp, 4
cmp dword [esp + 0xe0], esi
mov dword [esp + 0xfc], edi
mov dword [esp + 0xf8], ebx
mov word [esp + 0xe8], bx
jb 0x4086f5
mov eax, dword [esp + 0xcc]
push eax
call fcn.004716d0
add esp, 4
mov eax, dword [esp + 0x1ac]
lea ecx, [esp + 0x1b4]
cmp eax, ecx
mov word [esp + 0xcc], bx
mov dword [esp + 0xdc], ebx
mov dword [esp + 0xe0], edi
je 0x40872a
cmp eax, ebx
je 0x40872a
push eax
call fcn.0047231a
add esp, 4
cmp dword [esp + 0xc4], ebp
jb 0x408743
mov edx, dword [esp + 0xb0]
push edx
call fcn.004716d0
add esp, 4
mov dword [esp + 0xc4], 0xf
jmp 0x408197
lea eax, [esp + 0xc8]
push eax
lea ecx, [esp + 0xe8]
push ecx
call fcn.00408b20
test al, al
jne 0x40895a
lea edx, [esp + 0xc8]
push edx
call fcn.00421cc0
add esp, 4
lea eax, [esp + 0x100]
push eax
lea ecx, [esp + 0xe8]
push ecx
call fcn.00408b20
push str.update
lea ecx, [esp + 0x94]
call fcn.004025b0
lea edx, [esp + 0xe4]
push edx
lea edi, [esp + 0x20]
mov byte [esp + 0x628], 0x18
call fcn.00401a90
add esp, 4
mov esi, eax
lea eax, [esp + 0xc8]
push eax
lea edi, [esp + 0x40]
mov byte [esp + 0x628], 0x19
call fcn.00401a90
add esp, 4
mov edi, eax
lea eax, [esp + 0x14]
mov byte [esp + 0x624], 0x1a
call fcn.00401a70
mov byte [esp + 0x624], 0x1b
cmp dword [esi + 0x18], ebp
jb 0x408805
mov esi, dword [esi + 4]
jmp 0x408808
add esi, 4
cmp dword [edi + 0x18], ebp
jb 0x408812
mov ecx, dword [edi + 4]
jmp 0x408815
lea ecx, [edi + 4]
mov edx, dword [eax]
push esi
push ecx
push 0x1b3
push str.UpdateDisposer::SaveCurrentFile
push str._s__d__file_rename_error__s_to__s_n
push 0x40
lea ecx, [esp + 0xa8]
call fcn.00416b70
mov ecx, eax
call fcn.00416fe0
mov byte [esp + 0x63c], 0x1a
mov eax, dword [esp + 0x30]
add esp, 0x18
cmp eax, ebx
je 0x40887c
mov esi, eax
add eax, 4
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x40887c
mov edx, dword [esi]
mov eax, dword [edx + 4]
mov ecx, esi
call eax
lea ecx, [esi + 8]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x40887c
mov eax, dword [esi]
mov edx, dword [eax + 8]
mov ecx, esi
call edx
cmp dword [esp + 0x54], ebp
jb 0x40888f
mov eax, dword [esp + 0x40]
push eax
call fcn.004716d0
add esp, 4
cmp dword [esp + 0x34], ebp
mov esi, 0xf
mov dword [esp + 0x54], esi
mov dword [esp + 0x50], ebx
mov byte [esp + 0x40], bl
jb 0x4088b3
mov ecx, dword [esp + 0x20]
push ecx
call fcn.004716d0
add esp, 4
cmp dword [esp + 0xa8], ebp
mov dword [esp + 0x34], esi
mov dword [esp + 0x30], ebx
mov byte [esp + 0x20], bl
jb 0x4088d8
mov edx, dword [esp + 0x94]
push edx
call fcn.004716d0
add esp, 4
mov esi, 8
cmp dword [esp + 0x118], esi
jb 0x4088f6
mov eax, dword [esp + 0x104]
push eax
call fcn.004716d0
add esp, 4
cmp dword [esp + 0xfc], esi
mov edi, 7
mov dword [esp + 0x118], edi
mov dword [esp + 0x114], ebx
mov word [esp + 0x104], bx
jb 0x40892a
mov ecx, dword [esp + 0xe8]
push ecx
call fcn.004716d0
add esp, 4
cmp dword [esp + 0xe0], esi
mov dword [esp + 0xfc], edi
mov dword [esp + 0xf8], ebx
mov word [esp + 0xe8], bx
jb 0x4086f5
mov edx, dword [esp + 0xcc]
push edx
jmp 0x4086ed
lea eax, [esp + 0x100]
push eax
call fcn.00421cc0
add esp, 4
test al, al
jne 0x408a1c
push str.update
lea ecx, [esp + 0x94]
call fcn.004025b0
lea ecx, [esp + 0x100]
push ecx
lea edi, [esp + 0x40]
mov byte [esp + 0x628], 0x1c
call fcn.00401a90
add esp, 4
mov esi, eax
lea eax, [esp + 0x14]
mov byte [esp + 0x624], 0x1d
call fcn.00401a70
mov byte [esp + 0x624], 0x1e
cmp dword [esi + 0x18], ebp
jb 0x4089c4
mov esi, dword [esi + 4]
jmp 0x4089c7
add esi, 4
mov edx, dword [eax]
push esi
push 0x1b8
push str.UpdateDisposer::SaveCurrentFile
push str._s__d__file_remove_error__s_n
push 0x40
lea ecx, [esp + 0xa4]
call fcn.00416b70
mov ecx, eax
call fcn.00416fe0
add esp, 0x14
lea eax, [esp + 0x14]
mov byte [esp + 0x624], 0x1d
call fcn.004027a0
lea ecx, [esp + 0x3c]
call fcn.004025f0
lea ecx, [esp + 0x90]
call fcn.004025f0
mov edi, 7
mov esi, 8
cmp dword [esp + 0x118], esi
jb 0x408a3a
mov edx, dword [esp + 0x104]
push edx
call fcn.004716d0
add esp, 4
cmp dword [esp + 0xfc], esi
mov dword [esp + 0x118], edi
mov dword [esp + 0x114], ebx
mov word [esp + 0x104], bx
jb 0x408a69
mov eax, dword [esp + 0xe8]
push eax
call fcn.004716d0
add esp, 4
cmp dword [esp + 0xe0], esi
mov dword [esp + 0xfc], edi
mov dword [esp + 0xf8], ebx
mov word [esp + 0xe8], bx
jb 0x408a98
mov ecx, dword [esp + 0xcc]
push ecx
call fcn.004716d0
add esp, 4
mov eax, dword [esp + 0x1ac]
lea edx, [esp + 0x1b4]
cmp eax, edx
mov dword [esp + 0xe0], edi
mov dword [esp + 0xdc], ebx
mov word [esp + 0xcc], bx
je 0x408acd
cmp eax, ebx
je 0x408acd
push eax
call fcn.0047231a
add esp, 4
cmp dword [esp + 0xc4], ebp
jb 0x408ae6
mov eax, dword [esp + 0xb0]
push eax
call fcn.004716d0
add esp, 4
lea esi, [esp + 0x11c]
mov dword [esp + 0xc4], 0xf
mov dword [esp + 0xc0], ebx
mov byte [esp + 0xb0], bl
call fcn.00407580
mov al, 1
jmp 0x4081b3