Function at 0x521380
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5a10d6
mov eax, dword fs:[0]
push eax
sub esp, 0x1c4
mov eax, dword [0x5c53dc]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
lea ecx, [ebp - 0x1d0]
call fcn.00500ea0
mov ebx, 1
push 0x4e
mov dword [ebp - 0x1cc], ebx
mov word [ebp - 0x1c8], 0
mov dword [ebp - 0x1d0], 4
call fcn.00551ed5
add esp, 4
mov dword [ebp - 0x1c0], eax
mov dword [ebp - 4], 0
test eax, eax
je 0x5213fe
push esi
mov ecx, eax
call fcn.00501590
jmp 0x521400
xor eax, eax
lea ecx, [ebp - 0x1d0]
push ecx
push 0x24
push 0x13
push 0x12c
push 0x172
or edi, 0xffffffff
push 0x28
mov ecx, eax
mov dword [ebp - 4], edi
mov dword [esi + 0x59], eax
call fcn.00501a80
mov eax, dword [ebp - 0x1d0]
mov ecx, dword [esi + 0x59]
imul eax, eax, 0x13
mov dword [ecx + 0x38], 0x12c
mov dword [ecx + 0x3c], eax
mov eax, dword [esi + 0x59]
push 0x60
mov byte [eax + 0x40], 0
call fcn.00551ed5
add esp, 4
mov dword [ebp - 0x1c0], eax
mov dword [ebp - 4], ebx
test eax, eax
je 0x521467
push 0
push esi
mov ecx, eax
call fcn.00500b80
jmp 0x521469
xor eax, eax
push ebx
push str.ShapeMenuBtn06_1.SHP
push 0x23
push 0x163
mov ecx, eax
mov dword [ebp - 4], edi
mov dword [esi + 0x39], eax
call fcn.00500e60
mov eax, dword [esi + 0x39]
mov ebx, 0xa0
push 0x60
mov dword [eax + 0x54], ebx
call fcn.00551ed5
add esp, 4
mov dword [ebp - 0x1c0], eax
mov dword [ebp - 4], 2
test eax, eax
je 0x5214b5
push 0
push esi
mov ecx, eax
call fcn.00500b80
jmp 0x5214b7
xor eax, eax
push 1
push str.ShapeMenuBtn06_1.SHP
push 0x24
push 0x38c
mov ecx, eax
mov dword [ebp - 4], edi
mov dword [esi + 0x41], eax
call fcn.00500e60
mov eax, dword [esi + 0x41]
push 0x60
mov dword [eax + 0x54], ebx
call fcn.00551ed5
add esp, 4
mov dword [ebp - 0x1c0], eax
mov dword [ebp - 4], 3
test eax, eax
je 0x5214ff
push 0
push esi
mov ecx, eax
call fcn.00500b80
jmp 0x521501
xor eax, eax
push 1
push str.ShapeMenuBtn05_1.SHP
push 0x1cc
push 0x11d
mov ecx, eax
mov dword [ebp - 4], edi
mov dword [esi + 0x3d], eax
call fcn.00500e60
push 0x5237
call fcn.00486120
mov ecx, dword [esi + 0x3d]
add esp, 4
push eax
call fcn.00500e10
mov eax, dword [esi + 0x3d]
push 0x60
mov dword [eax + 0x54], ebx
call fcn.00551ed5
add esp, 4
mov dword [ebp - 0x1c0], eax
mov dword [ebp - 4], 4
test eax, eax
je 0x521562
push 0
push esi
mov ecx, eax
call fcn.00500b80
jmp 0x521564
xor eax, eax
push 1
push str.ShapeMenuBtn05_1.SHP
push 0x1cc
push 0xdf
mov ecx, eax
mov dword [ebp - 4], edi
mov dword [esi + 0x45], eax
call fcn.00500e60
push 0x523e
call fcn.00486120
mov ecx, dword [esi + 0x45]
add esp, 4
push eax
call fcn.00500e10
mov eax, dword [esi + 0x45]
push 0x60
mov dword [eax + 0x54], 0xa2
call fcn.00551ed5
add esp, 4
mov dword [ebp - 0x1c0], eax
mov dword [ebp - 4], 5
test eax, eax
je 0x5215c9
push 0
push esi
mov ecx, eax
call fcn.00500b80
jmp 0x5215cb
xor eax, eax
push 1
push str.ShapeMenuBtn05_1.SHP
push 0x1cc
push 0xa1
mov ecx, eax
mov dword [ebp - 4], edi
mov dword [esi + 0x4d], eax
call fcn.00500e60
push 0x5255
call fcn.00486120
mov ecx, dword [esi + 0x4d]
add esp, 4
push eax
call fcn.00500e10
mov eax, dword [esi + 0x4d]
push 0x60
mov dword [eax + 0x54], 0xa4
call fcn.00551ed5
add esp, 4
mov dword [ebp - 0x1c0], eax
mov dword [ebp - 4], 6
test eax, eax
je 0x521630
push 0
push esi
mov ecx, eax
call fcn.00500b80
jmp 0x521632
xor eax, eax
push 1
push str.ShapeMenuBtn05_1.SHP
push 0x1cc
push 0x63
mov ecx, eax
mov dword [ebp - 4], edi
mov dword [esi + 0x51], eax
call fcn.00500e60
push 0x52f2
call fcn.00486120
mov ecx, dword [esi + 0x51]
add esp, 4
push eax
call fcn.00500e10
mov eax, dword [esi + 0x51]
push 0x60
mov dword [eax + 0x54], 0xa5
call fcn.00551ed5
add esp, 4
mov dword [ebp - 0x1c0], eax
mov dword [ebp - 4], 7
test eax, eax
je 0x521694
push 0
push esi
mov ecx, eax
call fcn.00500b80
jmp 0x521696
xor eax, eax
push 1
push str.ShapeMenuBtn05_1.SHP
push 0x1cc
push 0x25
mov ecx, eax
mov dword [ebp - 4], edi
mov dword [esi + 0x49], eax
call fcn.00500e60
push 0x5238
call fcn.00486120
mov ecx, dword [esi + 0x49]
add esp, 4
push eax
call fcn.00500e10
mov eax, dword [esi + 0x49]
lea ebx, [esi + 0x6d]
mov dword [eax + 0x54], 0xa3
mov eax, dword [ebx + 4]
mov ecx, dword [ebx]
cmp ecx, eax
je 0x521728
mov edx, dword [ebp - 0x1c0]
push edx
push ecx
push eax
push eax
call fcn.00519440
mov ecx, dword [ebx + 4]
add esp, 0x10
mov dword [ebp - 0x1c4], eax
mov dword [ebp - 0x1c0], ecx
mov edi, eax
cmp eax, ecx
je 0x521722
add ebx, 0xc
push edi
push ebx
call fcn.0052a140
add edi, 0x1c
add esp, 8
cmp edi, dword [ebp - 0x1c0]
jne 0x521707
mov eax, dword [ebp - 0x1c4]
lea ebx, [esi + 0x6d]
mov dword [ebx + 4], eax
push ebx
call fcn.005211f0
mov ecx, dword [ebx + 4]
sub ecx, dword [ebx]
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
push 0x65
lea ebx, [edx + eax + 0x20]
call fcn.00551ed5
mov edi, eax
add esp, 8
mov dword [ebp - 0x1c0], edi
mov dword [ebp - 4], 8
test edi, edi
je 0x52177c
push esi
mov ecx, edi
call fcn.00503170
mov dword [edi], vtable.hListRecvMail.0
mov dword [edi + 0x61], 0
jmp 0x52177e
xor edi, edi
push 0
push 0
push 0
push 0x8b
push 0x54
mov ecx, edi
mov dword [ebp - 4], 0xffffffff
mov dword [esi + 0x55], edi
call fcn.00502af0
mov ecx, dword [esi + 0x55]
push 7
push ebx
push 1
push 0xe1
push 0xffffffffffffffc4
push 0xf6
call fcn.00502b30
mov ecx, dword [esi + 0x55]
push 0x24
push 0x11e
push 0xffffffffffffffc4
push 0xffffffffffffffd8
call fcn.00502fe0
xor edi, edi
test ebx, ebx
jle 0x521802
push 0x119
lea ecx, [ebp - 0x1bc]
push 0
push ecx
call fcn.00551e50
mov ecx, dword [esi + 0x55]
add esp, 0xc
lea eax, [ebp - 0x1bc]
mov byte [ebp - 0xa3], 0
mov edx, dword [ecx]
mov edx, dword [edx + 0x24]
push eax
push edi
call edx
inc edi
cmp edi, ebx
jl 0x5217ce
push 0x90
call fcn.00551ed5
add esp, 4
mov dword [ebp - 0x1c0], eax
xor edi, edi
mov ebx, 9
mov dword [ebp - 4], ebx
cmp eax, edi
je 0x52182e
push edi
push esi
mov ecx, eax
call fcn.00528f90
jmp 0x521830
xor eax, eax
push 0x10
push 0xf0
push 0x14e
push 0x28
mov ecx, eax
mov dword [ebp - 4], 0xffffffff
mov dword [esi + 0x5d], eax
call fcn.00529070
mov eax, dword [esi + 0x5d]
mov byte [eax + 0x77], 0
mov eax, dword [esi + 0x5d]
mov dword [eax + 0x64], ebx
mov eax, dword [esi + 0x5d]
mov ebx, 1
mov dword [eax + 0x40], ebx
mov eax, dword [esi + 0x5d]
push 0x90
mov dword [eax + 0x44], edi
call fcn.00551ed5
add esp, 4
mov dword [ebp - 0x1c0], eax
mov dword [ebp - 4], 0xa
cmp eax, edi
je 0x521896
push edi
push esi
mov ecx, eax
call fcn.00528f90
jmp 0x521898
xor eax, eax
push 0x10
push 0xb4
push 0x160
push 0xd2
mov ecx, eax
mov dword [ebp - 4], 0xffffffff
mov dword [esi + 0x61], eax
call fcn.00529070
mov eax, dword [esi + 0x61]
mov byte [eax + 0x77], 0
mov eax, dword [esi + 0x61]
mov dword [eax + 0x64], 9
mov eax, dword [esi + 0x61]
mov dword [eax + 0x40], ebx
mov eax, dword [esi + 0x61]
mov dword [eax + 0x44], edi
mov ecx, dword [esi + 0x61]
push edi
push 0x5a59f4
lea ecx, [ecx + 0x24]
call fcn.0040dcc0
push 0x90
call fcn.00551ed5
add esp, 4
mov dword [ebp - 0x1c0], eax
mov dword [ebp - 4], 0xb
cmp eax, edi
je 0x521911
push edi
push esi
mov ecx, eax
call fcn.00528f90
jmp 0x521913
xor eax, eax
push 0x1e
push 0xb7
mov dword [esi + 0x65], eax
push 6
mov byte [eax + 0x77], 0
mov ecx, dword [esi + 0x65]
push 0x64
mov dword [ebp - 4], 0xffffffff
call fcn.00529070
mov eax, dword [esi + 0x65]
mov dword [eax + 0x40], edi
mov eax, dword [esi + 0x65]
mov dword [eax + 0x44], ebx
mov eax, dword [esi + 0x65]
push 0x4e9e
mov dword [eax + 0x48], 4
call fcn.00486120
mov edi, dword [esi + 0x65]
mov ecx, eax
add esp, 4
lea edx, [ecx + 1]
nop
mov bl, byte [ecx]
inc ecx
test bl, bl
jne 0x521960
sub ecx, edx
push ecx
push eax
lea ecx, [edi + 0x24]
call fcn.0040dcc0
push 0x90
call fcn.00551ed5
add esp, 4
mov dword [ebp - 0x1c0], eax
mov dword [ebp - 4], 0xc
test eax, eax
je 0x52199d
push 0
push esi
mov ecx, eax
call fcn.00528f90
jmp 0x52199f
xor eax, eax
push 0x19
push 0x98
push 0x32
push 0x71
mov ecx, eax
mov dword [ebp - 4], 0xffffffff
mov dword [esi + 0x69], eax
call fcn.00529070
mov ecx, dword [esi + 0x69]
push 0x10000
push 0x10000
push 0
push 0
push str.ShapeMenuR61BankStoreBankStore_BG.SHP
call fcn.00528af0
push 0x524c
call fcn.00486120
mov ecx, eax
add esp, 4
lea edi, [ecx + 1]
mov dl, byte [ecx]
inc ecx
test dl, dl
jne 0x5219e8
sub ecx, edi
push ecx
mov ecx, dword [esi + 0x69]
push eax
add ecx, 0x24
call fcn.0040dcc0
mov ecx, dword [esi + 0x69]
mov eax, 1
mov dword [ecx + 0x40], eax
mov edx, dword [esi + 0x69]
mov dword [edx + 0x64], eax
mov ecx, dword [esi + 0x69]
mov dword [ecx + 0x44], eax
mov edx, dword [esi + 0x69]
mov dword [edx + 0x48], 4
mov ecx, dword [esi + 0x71]
sub ecx, dword [esi + 0x6d]
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
xor ebx, ebx
test eax, eax
jle 0x521b4a
mov dword [ebp - 0x1c0], ebx
mov eax, dword [esi + 0x55]
mov ecx, dword [eax + 0x38]
sub ecx, dword [eax + 0x34]
sar ecx, 2
cmp ecx, ebx
jle 0x521b21
mov edx, dword [eax + 0x34]
mov eax, dword [edx + ebx*4]
mov dword [ebp - 0x1c4], eax
test eax, eax
je 0x521b21
mov eax, dword [esi + 0x6d]
add eax, dword [ebp - 0x1c0]
cmp dword [eax + 0x14], 0x10
jb 0x521a81
mov eax, dword [eax]
push eax
push str.hTemp_Mail_Backup
lea eax, [ebp - 0x90]
push str._s__s
push eax
call fcn.00552e78
lea ecx, [ebp - 0x90]
push 0x5ae894
push ecx
call fcn.00555ad3
mov edi, eax
add esp, 0x18
test edi, edi
je 0x521b21
push edi
push 1
lea edx, [ebp - 0xa0]
push 0x10
push edx
call fcn.005559ca
add esp, 0x10
cmp dword [ebp - 0xa0], 1
jne 0x521b18
mov eax, dword [ebp - 0x1c4]
push edi
push 1
push 0x119
push eax
call fcn.005559ca
mov ecx, dword [ebp - 0x1c4]
add ecx, 0x1c
add esp, 0x10
push ecx
call fcn.004fa6c0
push eax
call fcn.005556d0
add esp, 8
test eax, eax
je 0x521b18
mov edx, dword [ebp - 0x1c4]
push 0x119
push 0
push edx
call fcn.00551e50
add esp, 0xc
push edi
call fcn.00555563
add esp, 4
mov ecx, dword [esi + 0x71]
sub ecx, dword [esi + 0x6d]
add dword [ebp - 0x1c0], 0x1c
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
inc ebx
add eax, edx
cmp ebx, eax
jl 0x521a48
mov ecx, dword [esi + 0x55]
call fcn.00520810
mov ecx, dword [esi + 0x49]
push 0
call fcn.00500390
mov ecx, esi
call fcn.00501fb0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00551e40
mov esp, ebp
pop ebp
ret