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

Disassembly:
mov eax, 0x4034
call fcn.00403d40
push ebx
push ebp
push esi
push edi
mov ecx, 0x400
xor eax, eax
lea edi, [esp + 0x44]
mov dword [esp + 0x38], 0
rep stosd dword es:[edi], eax
mov ecx, 0x400
lea edi, [esp + 0x2044]
rep stosd dword es:[edi], eax
mov ecx, 0x80
mov edi, 0x448dd0
rep stosd dword es:[edi], eax
lea eax, [esp + 0x44]
push eax
push 0x1000
call fcn.00401190
or ecx, 0xffffffff
lea edi, [esp + 0x4c]
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
shr ecx, 2
mov edi, 0x417bb8
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
or ecx, 0xffffffff
mov edi, 0x41014c
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, 0x417bb8
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x417bb8
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, 0x462150
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x417bb8
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, 0x448bd0
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, str.m_3327_df.bin
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push str.dfv_m3328c.ini
mov edx, ecx
mov esi, edi
or ecx, 0xffffffff
mov edi, 0x417bb8
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, str.unzipped_m_3327_df.bin
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, 0x462150
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, str.user_db.bin
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, 0x448bd0
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.004011d0
lea eax, [esp + 0x1f]
lea ecx, [esp + 0x2050]
push eax
lea edx, [esp + 0x54]
push ecx
push edx
push str.dfv_m3328c.ini
call fcn.004025a0
mov al, byte [0x46c352]
lea edi, [esp + 0x60]
mov byte [esp + 0x2f], al
or ecx, 0xffffffff
xor eax, eax
add esp, 0x1c
repne scasb al, byte es:[edi]
not ecx
dec ecx
jne 0x402938
push str.no_txt_file__n
call fcn.00403554
add esp, 4
jmp 0x403244
lea ecx, [esp + 0x44]
push 0x4103c4
push ecx
call fcn.004038e9
mov ebp, eax
add esp, 8
test ebp, ebp
mov dword [esp + 0x34], ebp
jne 0x402968
lea edx, [esp + 0x44]
push edx
push str.Cant_open_txt_file:__s_n
call fcn.00403554
jmp 0x403241
lea edi, [esp + 0x2044]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x402994
lea eax, [esp + 0x2044]
push 0x4103c4
push eax
call fcn.004038e9
add esp, 8
mov dword [esp + 0x38], eax
push 0x4103a4
push str.chout.txt
call fcn.004038e9
mov ebx, eax
add esp, 8
test ebx, ebx
mov dword [esp + 0x30], ebx
jne 0x4029c0
push str.Cant_create_chout.txt_n
call fcn.00403554
push ebp
jmp 0x40323c
push 0x4101c0
push 0x417bb8
call fcn.004038e9
mov esi, eax
add esp, 8
test esi, esi
jne 0x4029f6
push str.Cant_create_m_3327_df.bin_n
call fcn.00403554
push ebp
call fcn.00403585
push ebx
call fcn.00403585
add esp, 0xc
jmp 0x403244
push 2
push 0
push ebp
call fcn.004035db
push ebp
call fcn.00403667
mov edi, eax
lea ecx, [edi + edi]
shr ecx, 1
push ecx
call fcn.00403ccb
add esp, 0x14
mov dword [esp + 0x2c], eax
test edi, edi
je 0x403235
test eax, eax
je 0x403235
push 0
push 0
push ebp
call fcn.004035db
xor ebx, ebx
push str.Start_of_searching_Chinese_Ch..._n
mov dword [esp + 0x38], ebx
call fcn.00403554
add esp, 0x10
dec edi
test edi, edi
mov dword [esp + 0x18], ebx
mov dword [esp + 0x3c], edi
jbe 0x402afc
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x28], edx
push ebp
call fcn.004038fc
mov edx, dword [esp + 0x1c]
add esp, 4
inc edx
cmp al, 0xb0
mov byte [esp + 0x23], al
mov dword [esp + 0x18], edx
jb 0x402ae8
push ebp
call fcn.004038fc
mov edx, dword [esp + 0x1c]
add esp, 4
inc edx
cmp al, 0xa1
mov byte [esp + 0x14], al
mov dword [esp + 0x18], edx
jb 0x402ae8
xor edi, edi
test ebx, ebx
jbe 0x402abd
mov ecx, dword [esp + 0x2c]
mov dl, byte [esp + 0x23]
xor eax, eax
mov al, byte [ecx + 1]
cmp al, dl
mov al, byte [esp + 0x14]
jne 0x402ab3
cmp byte [ecx], al
je 0x402ae8
inc edi
add ecx, 2
cmp edi, ebx
jb 0x402a9e
jmp 0x402ac1
mov dl, byte [esp + 0x23]
cmp dl, 0xff
jne 0x402aca
cmp al, dl
je 0x402ae8
xor cx, cx
mov cl, dl
xor dx, dx
shl ecx, 8
mov dl, al
mov eax, dword [esp + 0x28]
add ecx, edx
inc ebx
mov word [eax], cx
add eax, 2
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x3c]
cmp eax, ecx
jb 0x402a60
mov dword [esp + 0x28], ebx
mov ecx, dword [esp + 0x2c]
push ebx
push ecx
call fcn.004023e0
add esp, 8
xor edi, edi
test ebx, ebx
jbe 0x402b6c
mov ebp, dword [esp + 0x2c]
mov ebx, dword [esp + 0x30]
mov dl, byte [ebp]
xor eax, eax
push ebx
mov al, byte [ebp + 1]
mov byte [esp + 0x18], dl
and eax, 0xff
push eax
call fcn.00403ca7
mov ecx, dword [esp + 0x1c]
push ebx
and ecx, 0xff
push ecx
call fcn.00403ca7
lea ebx, [edi + 1]
add esp, 0x10
test bl, 0xf
jne 0x402b5b
mov edx, dword [esp + 0x30]
push edx
push 0xa
call fcn.00403ca7
add esp, 8
mov eax, dword [esp + 0x28]
mov edi, ebx
add ebp, 2
cmp edi, eax
jb 0x402b14
mov ebp, dword [esp + 0x34]
mov eax, dword [esp + 0x30]
push eax
call fcn.00403585
push 0
push 0
push ebp
call fcn.004035db
mov ecx, 0x400
xor eax, eax
lea edi, [esp + 0x1054]
push str.End_of_searching_Chinese_Ch..._n
rep stosd dword es:[edi], eax
xor ebx, ebx
call fcn.00403554
push str.Start_of_building_default_value..._n
call fcn.00403554
lea ecx, [esp + 0x105c]
push ecx
push ebp
call fcn.004024c0
add esp, 0x20
cmp eax, 0xffffffff
je 0x402c46
test eax, eax
je 0x402c1c
mov al, byte [esp + 0x1044]
cmp al, 0x23
jne 0x402bf1
mov edx, ebx
lea eax, [esp + 0x1045]
and edx, 0xffff
push eax
inc ebx
mov byte [edx + 0x448dd0], 1
call fcn.00401b20
add esp, 4
jmp 0x402c1c
cmp al, 0x2a
jne 0x402c08
lea ecx, [esp + 0x1045]
inc ebx
push ecx
call fcn.00401b20
add esp, 4
jmp 0x402c1c
lea edx, [ebx - 1]
lea eax, [esp + 0x1044]
push edx
push eax
call fcn.004014a0
add esp, 8
mov ecx, 0x400
xor eax, eax
lea edi, [esp + 0x1044]
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x1044]
push ecx
push ebp
call fcn.004024c0
add esp, 8
cmp eax, 0xffffffff
jne 0x402bc0
call fcn.004012f0
push 0
push 0
push esi
call fcn.004035db
push esi
push 1
push 2
push 0x46cb5c
call fcn.004037bf
add esp, 0x1c
cmp word [0x46cb5c], 0
mov dword [esp + 0x18], 0
jbe 0x402fe3
mov ebx, 0x448fd0
mov dword [esp + 0x2c], ebx
mov eax, dword [ebx]
mov ecx, dword [esp + 0x18]
mov edx, eax
push esi
xor edx, ecx
push 0x20
and edx, 0xffff
push 1
xor edx, eax
push ebx
xor ebp, ebp
mov dword [ebx], edx
call fcn.004037bf
push ebx
push 2
call fcn.004021c0
push esi
call fcn.00403667
mov dword [esp + 0x44], eax
push esi
push 1
lea eax, [esp + 0x48]
push 2
push eax
mov dword [esp + 0x50], ebp
call fcn.004037bf
mov al, byte [0x46c351]
add esp, 0x2c
test al, al
jne 0x402e6f
cmp word [0x46cb5a], bp
mov dword [esp + 0x14], ebp
jbe 0x402e3f
mov ebp, 0x462350
mov ecx, dword [esp + 0x14]
mov al, byte [ecx + 0x4172b8]
test al, al
je 0x402e1e
mov eax, dword [ebp]
mov edx, eax
xor edx, ecx
mov ecx, dword [esp + 0x2c]
and edx, 0xffff
xor edx, eax
mov dword [ebp], edx
mov eax, dword [ebp + 4]
xor eax, dword [ecx]
test eax, 0xffff
jne 0x402e1e
mov edx, dword [esp + 0x24]
push esi
push 1
inc edx
push 0x14
push ebp
mov dword [esp + 0x34], edx
call fcn.004037bf
push ebp
push 1
call fcn.004021c0
push esi
call fcn.00403667
push esi
push 1
lea edx, [esp + 0x40]
push 2
push edx
mov dword [esp + 0x5c], eax
mov dword [esp + 0x48], 0
call fcn.004037bf
mov al, byte [esp + 0x3f]
add esp, 0x2c
test al, al
jne 0x402de6
mov eax, dword [esp + 0x18]
mov cl, byte [eax + 0x448dd0]
test cl, cl
jne 0x402de6
xor ebx, ebx
cmp word [0x46cb58], bx
jbe 0x402de6
mov edi, 0x418bd0
mov ecx, dword [ebp]
mov edx, dword [edi]
xor ecx, edx
test ecx, 0xffff
jne 0x402dd4
mov edx, dword [esp + 0x1c]
mov eax, dword [edi + 0x10]
mov ecx, dword [esp + 0x18]
inc edx
mov dword [esp + 0x1c], edx
mov edx, eax
xor edx, ecx
push esi
and edx, 0xffff
push 1
xor edx, eax
push 0x30
push edi
mov dword [edi + 0x10], edx
call fcn.004037bf
push edi
push 0
call fcn.004021c0
add esp, 0x18
mov eax, dword [0x46cb58]
inc ebx
and eax, 0xffff
add edi, 0x30
cmp ebx, eax
jb 0x402d90
cmp word [esp + 0x1c], 0
jbe 0x402e1e
push esi
call fcn.00403667
mov ecx, dword [esp + 0x34]
push 0
push ecx
push esi
mov edi, eax
call fcn.004035db
push esi
push 1
lea edx, [esp + 0x34]
push 2
push edx
call fcn.004037bf
push 0
push edi
push esi
call fcn.004035db
add esp, 0x2c
mov eax, dword [esp + 0x14]
xor ecx, ecx
mov cx, word [0x46cb5a]
inc eax
add ebp, 0x14
cmp eax, ecx
mov dword [esp + 0x14], eax
jb 0x402cf2
mov ebx, dword [esp + 0x2c]
cmp word [esp + 0x24], 0
jbe 0x402fbb
push esi
call fcn.00403667
mov edx, dword [esp + 0x2c]
push 0
push edx
push esi
mov edi, eax
call fcn.004035db
push esi
push 1
lea eax, [esp + 0x3c]
push 2
push eax
jmp 0x402faa
cmp word [0x46cb5a], bp
jbe 0x402ec6
mov edi, 0x462350
mov al, byte [ebp + 0x4172b8]
test al, al
je 0x402eb5
mov ecx, dword [edi + 4]
mov edx, dword [ebx]
xor ecx, edx
test ecx, 0xffff
jne 0x402eb5
mov edx, dword [esp + 0x24]
push esi
push 1
inc edx
push 0x14
push edi
mov dword [esp + 0x34], edx
call fcn.004037bf
push edi
push 1
call fcn.004021c0
add esp, 0x18
xor edx, edx
inc ebp
mov dx, word [0x46cb5a]
add edi, 0x14
cmp ebp, edx
jb 0x402e7d
xor ebp, ebp
cmp word [esp + 0x24], bp
jbe 0x402efd
push esi
call fcn.00403667
mov edi, eax
mov eax, dword [esp + 0x2c]
push ebp
push eax
push esi
call fcn.004035db
push esi
push 1
lea ecx, [esp + 0x3c]
push 2
push ecx
call fcn.004037bf
push ebp
push edi
push esi
call fcn.004035db
add esp, 0x2c
push esi
call fcn.00403667
push esi
push 1
lea edx, [esp + 0x28]
push 2
push edx
mov dword [esp + 0x44], eax
mov dword [esp + 0x30], ebp
call fcn.004037bf
mov al, byte [esp + 0x27]
add esp, 0x14
test al, al
jne 0x402f83
mov eax, dword [esp + 0x18]
mov cl, byte [eax + 0x448dd0]
test cl, cl
jne 0x402f83
cmp word [0x46cb58], bp
jbe 0x402f83
mov edi, 0x418bd0
mov ecx, dword [edi + 0x10]
mov edx, dword [ebx]
xor ecx, edx
test ecx, 0xffff
jne 0x402f6f
mov edx, dword [esp + 0x1c]
push esi
push 1
inc edx
push 0x30
push edi
mov dword [esp + 0x2c], edx
call fcn.004037bf
push edi
push 0
call fcn.004021c0
add esp, 0x18
mov edx, dword [0x46cb58]
inc ebp
and edx, 0xffff
add edi, 0x30
cmp ebp, edx
jb 0x402f41
cmp word [esp + 0x1c], 0
jbe 0x402fbb
push esi
call fcn.00403667
mov edi, eax
mov eax, dword [esp + 0x34]
push 0
push eax
push esi
call fcn.004035db
push esi
push 1
lea ecx, [esp + 0x34]
push 2
push ecx
call fcn.004037bf
push 0
push edi
push esi
call fcn.004035db
add esp, 0x2c
mov eax, dword [esp + 0x18]
mov edx, dword [0x46cb5c]
inc eax
and edx, 0xffff
add ebx, 0x20
cmp eax, edx
mov dword [esp + 0x18], eax
mov dword [esp + 0x2c], ebx
jb 0x402c86
mov ebp, dword [esp + 0x34]
push ebp
call fcn.00403585
push esi
call fcn.00403585
push str.End_of_building_default_value..._n
call fcn.00403554
call fcn.00401e70
push 0x462150
push 0x417bb8
lea eax, [esp + 0x58]
push str.copy___s____s_
push eax
call fcn.00403c55
lea ecx, [esp + 0x60]
push ecx
call fcn.00403bbf
lea edx, [esp + 0x3064]
push edx
push 0x1000
call fcn.00401190
push 0x417bb8
lea eax, [esp + 0x3070]
push 0x462150
push eax
lea ecx, [esp + 0x78]
push str.__slzma.exe__e___s____s___lc0__lp2
push ecx
call fcn.00403c55
lea edx, [esp + 0x80]
push edx
call fcn.00401180
mov edi, dword [esp + 0x78]
add esp, 0x40
test edi, edi
jne 0x403086
push str.no_binary_file__n
call fcn.00403554
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4034
ret
push str.Start_of_update_binary_code..._n
call fcn.00403554
push 2
push 0
push edi
call fcn.004035db
push edi
call fcn.00403667
push eax
mov dword [esp + 0x4c], eax
call fcn.00403ccb
add esp, 0x18
mov dword [esp + 0x14], eax
test eax, eax
jne 0x4030c7
push str.No_enough_memory__n
call fcn.00403554
add esp, 4
jmp 0x403244
mov edi, dword [esp + 0x38]
push 0
push 0
push edi
call fcn.004035db
mov ebx, dword [esp + 0x40]
mov ebp, dword [esp + 0x20]
push edi
push ebx
push 1
push ebp
call fcn.00403ad7
push edi
call fcn.00403585
call fcn.004033a0
push ebx
push ebp
call fcn.004010d0
push 1
lea eax, [esp + 0x6c]
push 0xffff0000
push eax
mov dword [esp + 0x74], 0x3fc0000
call fcn.00401060
mov ebx, eax
lea eax, [ebx + 4]
push eax
call fcn.00401000
lea ecx, [ebx + 8]
push ecx
call fcn.00401000
push 2
push 0
push esi
mov edi, eax
call fcn.004035db
add esp, 0x48
push esi
call fcn.00403667
push 0
push 0
push esi
mov ebp, eax
call fcn.004035db
lea edx, [edi - 0x80]
lea eax, [ebp + 4]
add esp, 0x10
cmp eax, edx
jbe 0x403176
push str.new_default_value_is_too_long__n
call fcn.00403554
mov ecx, dword [esp + 0x18]
push ecx
call fcn.00403aa8
push esi
call fcn.00403585
add esp, 0xc
jmp 0x403244
push esi
push ebp
lea edx, [ebx + 0x80]
push 1
push edx
call fcn.00403ad7
push esi
call fcn.00403585
sub edi, ebp
add esp, 0x14
lea ecx, [edi - 0x80]
test ecx, ecx
jbe 0x4031b0
mov edx, ecx
lea edi, [ebx + ebp + 0x80]
or eax, 0xffffffff
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov edi, dword [esp + 0x14]
add ebp, 0x74
lea eax, [ebx + 4]
push ebp
push eax
call fcn.00401030
lea eax, [ebx + 0x10]
push ebp
push eax
push 0xffffffffffffffff
call fcn.004033e0
add ebx, 0xc
push eax
push ebx
call fcn.00401030
push 0x4101c0
push str.OUT.bin
call fcn.004038e9
mov esi, eax
add esp, 0x24
test esi, esi
jne 0x403201
push str.Update_binary_code_failed__n
call fcn.00403554
push edi
call fcn.00403aa8
jmp 0x403241
mov ecx, dword [esp + 0x34]
push esi
push 1
push ecx
push edi
call fcn.004037bf
push esi
call fcn.00403585
push edi
call fcn.00403aa8
push str.End_of_update_binary_code..._nFinished__n
call fcn.00403554
add esp, 0x1c
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4034
ret
push ebp
call fcn.00403585
push ebx
call fcn.00403585
add esp, 8
mov eax, dword [0x4103ec]
dec eax
mov dword [0x4103ec], eax
js 0x403269
mov eax, dword [0x4103e8]
pop edi
inc eax
pop esi
mov dword [0x4103e8], eax
pop ebp
xor eax, eax
pop ebx
add esp, 0x4034
ret
push 0x4103e8
call fcn.00403916
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4034
ret