Function at 0x4150c0
Capabilities:
Write file on windows

Disassembly:
push 0xffffffffffffffff
push 0x509e9b
mov eax, dword fs:[0]
push eax
mov eax, 0x11e8
call fcn.004d14d0
mov eax, dword [0x5375a0]
xor eax, esp
mov dword [esp + 0x11e0], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x5375a0]
xor eax, esp
push eax
lea eax, [esp + 0x11fc]
mov dword fs:[0], eax
mov ebp, dword [esp + 0x120c]
mov eax, dword [ebp + 8]
mov esi, ecx
mov dword [esp + 0x18], esi
test eax, eax
jne 0x415131
call fcn.00437ec0
push 0x51bb30
push 0x5192f4
mov edx, eax
call fcn.004392f0
add esp, 8
jmp 0x415b1c
mov ebx, dword [eax + 8]
add eax, 0x240
push eax
lea ecx, [esp + 0x278]
call fcn.00438c10
mov dword [esp + 0x1204], 0
mov eax, dword [ebp + 8]
mov edi, dword [eax + 0x24]
mov cl, byte [eax + 0x858]
mov byte [esp + 0x1f], cl
cmp edi, 3
ja case.default.0x41516a
jmp dword [edi*4 + 0x415b48]
push str.http:__config.pinyin.sogou.com_picface_interface_query_zb.php
lea ecx, [esp + 0x28]
call fcn.00438c10
cmp byte [esp + 0x390], 0
lea esi, [esp + 0x280]
jne 0x415197
mov esi, dword [esp + 0x27c]
push str._cands
push 0x5192f4
lea edx, [esp + 0x2c]
call fcn.004392f0
add esi, 4
push esi
push 0x5192f4
lea edx, [esp + 0x34]
call fcn.004392f0
push str.tp
push 0x5192f4
lea edx, [esp + 0x3c]
call fcn.004392f0
push ebx
push 0x51a034
lea edx, [esp + 0x44]
call fcn.004392f0
add esp, 0x20
cmp ebx, 1
jne 0x415211
push str.tid
push 0x5192f4
lea edx, [esp + 0x2c]
call fcn.004392f0
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x28]
push eax
push 0x51a034
lea edx, [esp + 0x34]
call fcn.004392f0
add esp, 0x10
lea esi, [esp + 0x4c4]
call fcn.0047ea00
xor edi, edi
lea esi, [esp + 0x14c]
call fcn.0041b0b0
mov byte [esp + 0x1204], 3
lea ecx, [esp + 0x4c4]
mov eax, esi
push ecx
mov dword [esp + 0x718], 1
mov dword [esp + 0x720], eax
mov dword [esp + 0x714], 0x84000000
mov dword [esp + 0x71c], 0x51aff0
call fcn.0047f290
add esp, 4
test al, al
jne 0x4152b1
mov ecx, dword [esp + 0x18]
push str.download_dt_search_json_fail
call fcn.00402790
lea ecx, [esp + 0x14c]
call fcn.00407da0
lea eax, [esp + 0x4c4]
call fcn.0040c250
lea ecx, [esp + 0x24]
call fcn.00438c80
lea ecx, [esp + 0x274]
call fcn.00438c80
jmp 0x415b1c
call fcn.0043dfe0
lea ecx, [eax + 0x254]
call fcn.00435ed0
mov ebx, eax
lea edi, [esp + 0x39c]
call fcn.004024b0
mov eax, str.SogouInputComponentsPicfaceJson
mov esi, edi
mov byte [esp + 0x1204], 4
call fcn.00401520
mov edx, edi
push edx
mov ebx, str.SGPDTSearch.json
call fcn.00401580
push 0
push 0x80
push 2
push 0
push 0
push 0xc0000000
mov eax, edi
call fcn.00401500
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov esi, eax
cmp esi, 0xffffffff
jne 0x415336
push str.create_dt_search_json_file_fail
mov ecx, dword [esp + 0x1c]
call fcn.00402790
lea eax, [esp + 0x39c]
call fcn.00402520
jmp 0x41527f
mov eax, dword [esp + 0x724]
xor edi, edi
lea ecx, [esp + 0x14c]
call fcn.0041b110
mov edx, dword [esp + 0x724]
push edi
lea ecx, [esp + 0x24]
push ecx
push edx
push eax
push esi
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x41536c
push str.write_dt_search_json_file_fail
jmp 0x41531c
lea eax, [esp + 0x39c]
call fcn.00402520
lea ecx, [esp + 0x14c]
call fcn.00407da0
lea eax, [esp + 0x4c4]
call fcn.0040c250
lea ecx, [esp + 0x24]
call fcn.00438c80
lea ecx, [esp + 0x274]
call fcn.00438c80
mov al, 1
jmp 0x415b1e
add eax, 0x650
push eax
lea ecx, [esp + 0x150]
call fcn.00438c10
mov eax, dword [ebp + 8]
add eax, 0x448
push eax
lea ecx, [esp + 0x870]
call fcn.00438c10
mov byte [esp + 0x1204], 6
cmp byte [esp + 0x268], 0
lea eax, [esp + 0x158]
jne 0x4153f3
mov eax, dword [esp + 0x154]
add eax, 4
je 0x415724
lea eax, [esp + 0x14c]
call fcn.00439250
lea edx, [eax + 2]
jmp 0x415410
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x415410
sub eax, edx
sar eax, 1
je 0x415724
lea ecx, [esp + 0x24]
call fcn.00438ae0
push ebx
push 0x51a034
lea edx, [esp + 0x2c]
call fcn.004392f0
add esp, 8
lea ecx, [esp + 0x39c]
call fcn.00438ae0
lea ecx, [esp + 0x24]
call fcn.00435ed0
push eax
push 0x5192f4
lea edx, [esp + 0x3a4]
call fcn.004392f0
push str._temp
push 0x5192f4
lea edx, [esp + 0x3ac]
call fcn.004392f0
push str..bin
push 0x5192f4
lea edx, [esp + 0x3c]
call fcn.004392f0
push str..bin
push 0x5192f4
lea edx, [esp + 0x3bc]
call fcn.004392f0
add esp, 0x20
lea eax, [esp + 0x994]
call fcn.00403780
lea ecx, [esp + 0x24]
mov dword [esp + 0x994], 1
mov dword [esp + 0x998], 9
mov dword [esp + 0x99c], ebx
call fcn.00435ed0
push eax
lea ecx, [esp + 0x9d0]
push ecx
call fcn.00413690
add esp, 8
lea eax, [esp + 0x4c4]
call fcn.00414e00
lea eax, [esp + 0x14c]
lea edx, [esp + 0x5e0]
mov byte [esp + 0x1204], 9
call fcn.00438d00
call fcn.0040a280
push 1
lea ecx, [esp + 0x4c8]
mov edi, esi
call fcn.004106f0
test al, al
jne 0x415582
push str.GetLocalTempCellPath_Fail
mov ecx, edi
call fcn.00402790
lea esi, [esp + 0x4c4]
call fcn.00415b60
lea ecx, [esp + 0x39c]
call fcn.00438c80
lea ecx, [esp + 0x24]
call fcn.00438c80
lea ecx, [esp + 0x86c]
call fcn.00438c80
lea ecx, [esp + 0x14c]
call fcn.00438c80
lea ecx, [esp + 0x274]
call fcn.00438c80
jmp 0x415b1c
lea eax, [esp + 0x24]
mov dword [esp + 0x82c], 0x519f84
call fcn.00439250
mov dword [esp + 0x830], eax
lea eax, [esp + 0x39c]
call fcn.00439250
mov dword [esp + 0x834], eax
lea eax, [esp + 0x86c]
mov dword [esp + 0x838], 0
mov dword [esp + 0x840], 0x41aee0
call fcn.00439250
lea ecx, [esp + 0x4c4]
push ecx
mov dword [esp + 0x848], eax
mov al, byte [esp + 0x23]
lea edx, [esp + 0x998]
push edi
mov ecx, ebp
mov dword [esp + 0x850], 0x415bf0
mov dword [esp + 0x854], edx
mov byte [esp + 0x858], 1
mov byte [esp + 0x859], 1
mov byte [esp + 0x860], al
call fcn.00418780
test al, al
jne 0x4156d5
lea ecx, [esp + 0x24]
call fcn.00435ed0
mov dword [esp + 0x18], eax
call fcn.0040a280
push 0x860
call fcn.004c98d1
add esp, 4
test eax, eax
je 0x415653
call fcn.00403780
mov esi, eax
test esi, esi
jne 0x415678
mov ecx, edi
call fcn.00437ec0
push 0x51b73c
push 0x5192f4
mov edx, eax
call fcn.004392f0
add esp, 8
push str.UserDown::CreatePicFacePassengerItem_Fail
jmp 0x415531
mov edx, dword [esp + 0x18]
push edx
lea eax, [esi + 0x38]
push eax
mov dword [esi], 1
mov dword [esi + 4], 9
call fcn.00413690
add esp, 8
mov dword [esi + 8], ebx
mov dword [esi + 0x1c], 0
mov ecx, dword [ebp + 8]
push 0x104
add ecx, 0x240
push ecx
lea edx, [esi + 0x240]
push 0x104
push edx
call fcn.004c873f
add esp, 0x10
call fcn.0040a280
push esi
mov esi, 9
call fcn.00411180
jmp 0x4156d8
mov dword [ebp + 0x20], ebx
lea esi, [esp + 0x4c4]
call fcn.00415b60
lea ecx, [esp + 0x39c]
call fcn.00438c80
lea ecx, [esp + 0x24]
call fcn.00438c80
lea ecx, [esp + 0x86c]
call fcn.00438c80
lea ecx, [esp + 0x14c]
call fcn.00438c80
lea ecx, [esp + 0x274]
call fcn.00438c80
mov al, 1
jmp 0x415b1e
push 0x51bc20
mov ecx, esi
call fcn.00402790
jmp 0x415559
lea ecx, [esp + 0x24]
call fcn.00438ae0
push ebx
push 0x51a034
lea edx, [esp + 0x2c]
call fcn.004392f0
add esp, 8
lea ecx, [esp + 0x14c]
call fcn.00438ae0
cmp byte [esp + 0x140], 0
lea eax, [esp + 0x30]
jne 0x41576e
mov eax, dword [esp + 0x2c]
add eax, 4
push eax
push 0x5192f4
lea edx, [esp + 0x154]
call fcn.004392f0
push str._temp
push 0x5192f4
lea edx, [esp + 0x15c]
call fcn.004392f0
push str..bin
push 0x5192f4
lea edx, [esp + 0x3c]
call fcn.004392f0
push str..bin
push 0x5192f4
lea edx, [esp + 0x16c]
call fcn.004392f0
add esp, 0x20
lea ecx, [esp + 0x39c]
call fcn.00438ae0
mov byte [esp + 0x1204], 0xc
call fcn.0040a280
push ebx
lea eax, [esp + 0x3a0]
call fcn.004130f0
test al, al
jne 0x415818
push str.GetDownLoadCellUrl_Fail
mov ecx, esi
call fcn.00402790
lea ecx, [esp + 0x39c]
call fcn.00438c80
lea ecx, [esp + 0x14c]
call fcn.00438c80
jmp 0x415297
lea eax, [esp + 0x4c4]
call fcn.00414e00
lea eax, [esp + 0x39c]
lea edx, [esp + 0x5e0]
mov byte [esp + 0x1204], 0xd
call fcn.00438d00
call fcn.0040a280
push 1
lea ecx, [esp + 0x4c8]
mov edi, esi
call fcn.004106f0
test al, al
jne 0x415872
push str.GetLocalTempCellPath_Fail
mov ecx, edi
call fcn.00402790
lea esi, [esp + 0x4c4]
call fcn.00415b60
jmp 0x4157fb
lea eax, [esp + 0x24]
mov dword [esp + 0x82c], 0x519f84
call fcn.00439250
mov dword [esp + 0x830], eax
lea eax, [esp + 0x14c]
call fcn.00439250
mov dword [esp + 0x834], eax
lea eax, [esp + 0x4c4]
push eax
mov esi, edi
push esi
mov ecx, ebp
mov dword [esp + 0x840], 0
mov byte [esp + 0x858], 1
mov byte [esp + 0x859], 1
mov byte [esp + 0x860], 1
call fcn.00418780
test al, al
jne 0x4158f6
push str.DoDownloadFile_Fail
mov ecx, esi
call fcn.00402790
lea esi, [esp + 0x4c4]
call fcn.00415b60
jmp 0x4157fb
lea esi, [esp + 0x4c4]
mov dword [ebp + 0x20], ebx
call fcn.00415b60
lea ecx, [esp + 0x39c]
call fcn.00438c80
lea ecx, [esp + 0x14c]
call fcn.00438c80
jmp 0x415390
lea ecx, [esp + 0x24]
call fcn.00438ae0
push ebx
push 0x51a034
lea edx, [esp + 0x2c]
call fcn.004392f0
add esp, 8
lea ecx, [esp + 0x14c]
call fcn.00438ae0
cmp byte [esp + 0x140], 0
lea eax, [esp + 0x30]
jne 0x41595b
mov eax, dword [esp + 0x2c]
add eax, 4
push eax
push 0x5192f4
lea edx, [esp + 0x154]
call fcn.004392f0
push str._temp
push 0x5192f4
lea edx, [esp + 0x15c]
call fcn.004392f0
push str..png
push 0x5192f4
lea edx, [esp + 0x3c]
call fcn.004392f0
push str..png
push 0x5192f4
lea edx, [esp + 0x16c]
call fcn.004392f0
add esp, 0x20
lea eax, [esp + 0x4c4]
call fcn.00414e00
mov byte [esp + 0x1204], 0x10
call fcn.0040a280
push 0xffffffffffffffff
push ebx
lea eax, [esp + 0x5e8]
call fcn.0040e700
test al, al
jne 0x415a07
push 0x51bd24
mov ecx, esi
call fcn.00402790
lea esi, [esp + 0x4c4]
call fcn.00415b60
lea ecx, [esp + 0x14c]
call fcn.00438c80
jmp 0x415297
lea eax, [esp + 0x274]
call fcn.00439250
test eax, eax
je 0x415a23
lea edx, [esp + 0x4c4]
call fcn.00402540
lea eax, [esp + 0x24]
mov dword [esp + 0x82c], 0x519f84
call fcn.00439250
mov dword [esp + 0x830], eax
lea eax, [esp + 0x14c]
call fcn.00439250
lea ecx, [esp + 0x4c4]
push ecx
push esi
mov ecx, ebp
mov dword [esp + 0x83c], eax
mov dword [esp + 0x840], 0
mov byte [esp + 0x858], 1
mov byte [esp + 0x859], 1
mov byte [esp + 0x860], 1
call fcn.00418780
test al, al
jne 0x415ab1
push str.DoDownloadFile_Fail
mov ecx, esi
call fcn.00402790
lea esi, [esp + 0x4c4]
call fcn.00415b60
lea ecx, [esp + 0x14c]
call fcn.00438c80
jmp 0x415297
lea esi, [esp + 0x4c4]
mov dword [ebp + 0x20], ebx
call fcn.00415b60
lea ecx, [esp + 0x14c]
call fcn.00438c80
jmp 0x415390
mov ecx, esi
call fcn.00437ec0
push str.Unknow_nPurpose
push 0x5192f4
mov edx, eax
call fcn.004392f0
add esp, 8
cmp byte [esp + 0x390], 0
mov dword [esp + method.t_str.virtual_0], vtable.t_str.0
jne 0x415b1c
mov eax, dword [esp + 0x27c]
lea edx, [esp + 0x280]
cmp eax, edx
je 0x415b1c
push eax
call fcn.004c6103
add esp, 4
xor al, al
mov ecx, dword [esp + 0x11fc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x11e0]
xor ecx, esp
call fcn.004c60f4
add esp, 0x11f4
ret 4