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

Disassembly:
push 0xffffffffffffffff
push 0x4b18bf
mov eax, dword fs:[0]
push eax
mov eax, 0x40570
call fcn.0047f7e0
mov eax, dword [0x4f2888]
xor eax, esp
mov dword [esp + 0x4056c], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4f2888]
xor eax, esp
push eax
lea eax, [esp + 0x40584]
mov dword fs:[0], eax
mov ebp, ecx
xor ebx, ebx
mov dword [esp + 0x4058c], ebx
call fcn.0042f8f6
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x415fb4
push 0x80004005
call fcn.00401040
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x18], eax
mov byte [esp + 0x4058c], 1
call fcn.0042f8f6
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x415fe6
push 0x80004005
call fcn.00401040
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x2c], eax
mov byte [esp + 0x4058c], 2
call fcn.0042f8f6
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x416018
push 0x80004005
call fcn.00401040
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea edi, [eax + 0x10]
mov dword [esp + 0x28], edi
push ebx
mov esi, 0xf
push 0x4bacfe
lea ecx, [esp + 0x114]
mov byte [esp + 0x40594], 3
mov dword [esp + 0x12c], esi
mov dword [esp + 0x128], ebx
mov byte [esp + 0x118], 0
call fcn.00403be0
push ebx
push 0x4bacfe
lea ecx, [esp + 0xc0]
mov byte [esp + 0x40594], 4
mov dword [esp + 0xd8], esi
mov dword [esp + 0xd4], ebx
mov byte [esp + 0xc4], 0
call fcn.00403be0
push ebx
push 0x4bacfe
lea ecx, [esp + 0xdc]
mov byte [esp + 0x40594], 5
mov dword [esp + 0xf4], esi
mov dword [esp + 0xf0], ebx
mov byte [esp + 0xe0], 0
call fcn.00403be0
push ebx
push 0x4bacfe
lea ecx, [esp + 0xf8]
mov byte [esp + 0x40594], 6
mov dword [esp + 0x110], esi
mov dword [esp + 0x10c], ebx
mov byte [esp + 0xfc], 0
call fcn.00403be0
lea ecx, [esp + 0x128]
mov byte [esp + 0x4058c], 7
call fcn.0041d120
mov ecx, dword [esp + 0x40594]
push ecx
lea ecx, [esp + 0x12c]
mov byte [esp + 0x40590], 8
call fcn.0041e270
lea ecx, [esp + 0x3c]
call fcn.00444a77
lea edx, [esp + 0x3c]
push edx
push ecx
mov ecx, esp
mov dword [esp + 0x38], esp
push str.APP_USERINFO
mov byte [esp + 0x40598], 9
call fcn.004021a0
push ebx
lea ecx, [esp + 0x134]
call fcn.0041d810
cmp dword [esp + 0x44], ebx
jg 0x4162ea
lea ecx, [esp + 0x3c]
mov byte [esp + 0x4058c], 8
call fcn.00444a8e
lea ecx, [esp + 0x128]
mov byte [esp + 0x4058c], 7
call fcn.0041d150
mov ebp, 0x10
cmp dword [esp + 0x108], ebp
jb 0x41619e
mov eax, dword [esp + 0xf4]
push eax
call fcn.0042d6df
add esp, 4
mov dword [esp + 0x108], esi
mov dword [esp + 0x104], ebx
mov byte [esp + 0xf4], 0
cmp dword [esp + 0xec], ebp
jb 0x4161cd
mov ecx, dword [esp + 0xd8]
push ecx
call fcn.0042d6df
add esp, 4
mov dword [esp + 0xec], esi
mov dword [esp + 0xe8], ebx
mov byte [esp + 0xd8], 0
cmp dword [esp + 0xd0], ebp
jb 0x4161fc
mov edx, dword [esp + 0xbc]
push edx
call fcn.0042d6df
add esp, 4
mov dword [esp + 0xd0], esi
mov dword [esp + 0xcc], ebx
mov byte [esp + 0xbc], 0
cmp dword [esp + 0x124], ebp
jb 0x41622b
mov eax, dword [esp + 0x110]
push eax
call fcn.0042d6df
add esp, 4
lea eax, [edi - 0x10]
or edx, 0xffffffff
lea ecx, [eax + 0xc]
mov byte [esp + 0x4058c], 2
mov byte [esp + 0x110], 0
mov dword [esp + 0x120], ebx
mov dword [esp + 0x124], esi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x416265
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
mov byte [esp + 0x4058c], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41628d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
mov byte [esp + 0x4058c], 0
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4162b5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x40594]
add eax, 0xfffffff0
mov dword [esp + 0x4058c], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4162e3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor eax, eax
jmp 0x41721d
mov ecx, dword [esp + 0x40]
mov edi, dword [ecx]
cmp edi, ebx
jne 0x4163d4
lea ecx, [esp + 0x3c]
mov byte [esp + 0x4058c], 8
call fcn.00444a8e
lea ecx, [esp + 0x128]
mov byte [esp + 0x4058c], 7
call fcn.0041d150
mov edi, 0x10
cmp dword [esp + 0x108], edi
jb 0x41633b
mov edx, dword [esp + 0xf4]
push edx
call fcn.0042d6df
add esp, 4
mov dword [esp + 0x108], esi
mov dword [esp + 0x104], ebx
mov byte [esp + 0xf4], 0
cmp dword [esp + 0xec], edi
jb 0x41636a
mov eax, dword [esp + 0xd8]
push eax
call fcn.0042d6df
add esp, 4
mov dword [esp + 0xec], esi
mov dword [esp + 0xe8], ebx
mov byte [esp + 0xd8], 0
cmp dword [esp + 0xd0], edi
jb 0x416399
mov ecx, dword [esp + 0xbc]
push ecx
call fcn.0042d6df
add esp, 4
mov dword [esp + 0xd0], esi
mov dword [esp + 0xcc], ebx
mov byte [esp + 0xbc], 0
cmp dword [esp + 0x124], edi
jb 0x4163c8
mov edx, dword [esp + 0x110]
push edx
call fcn.0042d6df
add esp, 4
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
jmp 0x41622e
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push str.USERIDX
call fcn.004021a0
lea ecx, [esp + 0x28]
push ecx
mov ecx, edi
call fcn.0041d270
mov edi, dword [eax]
mov eax, edi
mov byte [esp + 0x4058c], 0xa
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x416400
sub eax, edx
push eax
push edi
lea ecx, [esp + 0xf8]
call fcn.00403be0
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
mov byte [esp + 0x4058c], 9
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41643f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp dword [esp + 0x104], ebx
ja 0x416553
lea ecx, [esp + 0x3c]
mov byte [esp + 0x4058c], 8
call fcn.00444a8e
lea ecx, [esp + 0x128]
mov byte [esp + 0x4058c], 7
call fcn.0041d150
mov edi, 0x10
cmp dword [esp + 0x108], edi
jb 0x41648f
mov ecx, dword [esp + 0xf4]
push ecx
call fcn.0042d6df
add esp, 4
mov dword [esp + 0x108], esi
mov dword [esp + 0x104], ebx
mov byte [esp + 0xf4], 0
cmp dword [esp + 0xec], edi
jb 0x4164be
mov edx, dword [esp + 0xd8]
push edx
call fcn.0042d6df
add esp, 4
mov dword [esp + 0xec], esi
mov dword [esp + 0xe8], ebx
mov byte [esp + 0xd8], 0
cmp dword [esp + 0xd0], edi
jb 0x4164ed
mov eax, dword [esp + 0xbc]
push eax
call fcn.0042d6df
add esp, 4
mov dword [esp + 0xd0], esi
mov dword [esp + 0xcc], ebx
mov byte [esp + 0xbc], 0
cmp dword [esp + 0x124], edi
jb 0x41651c
mov ecx, dword [esp + 0x110]
push ecx
call fcn.0042d6df
add esp, 4
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
mov dword [esp + 0x124], esi
mov dword [esp + 0x120], ebx
mov byte [esp + 0x110], 0
mov byte [esp + 0x4058c], 2
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jmp 0x416259
mov eax, dword [esp + 0xf4]
mov esi, 0x10
cmp dword [esp + 0x108], esi
jae 0x41656f
lea eax, [esp + 0xf4]
push eax
call fcn.00480251
add esp, 4
lea ecx, [esp + 0x3c]
mov dword [ebp + 0x12b8], eax
mov dword [ebp + 0x12bc], edx
mov byte [esp + 0x4058c], 8
call fcn.00444a8e
lea ecx, [esp + 0x3c]
call fcn.00444a77
lea ecx, [esp + 0x3c]
push ecx
push ecx
mov ecx, esp
mov dword [esp + 0x38], esp
push str.APP_LIST_BOARD
mov byte [esp + 0x40598], 0xb
call fcn.004021a0
push ebx
lea ecx, [esp + 0x134]
call fcn.0041d810
cmp dword [esp + 0x44], ebx
jg 0x416656
lea ecx, [esp + 0x3c]
mov byte [esp + 0x4058c], 8
call fcn.00444a8e
lea ecx, [esp + 0x128]
mov byte [esp + 0x4058c], 7
call fcn.0041d150
lea ecx, [esp + 0xf0]
call fcn.004037c0
lea ecx, [esp + 0xd4]
call fcn.004037c0
lea ecx, [esp + 0xb8]
call fcn.004037c0
lea ecx, [esp + 0x10c]
call fcn.004037c0
lea ecx, [esp + 0x28]
call fcn.00401aa0
lea ecx, [esp + 0x2c]
call fcn.00401aa0
lea ecx, [esp + 0x18]
call fcn.00401aa0
lea ecx, [esp + 0x40594]
call fcn.00401aa0
xor eax, eax
jmp 0x41721d
mov edx, dword [esp + 0x40]
mov edi, dword [edx]
cmp edi, ebx
je 0x4165d3
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push str.PURCHASEIDX
call fcn.004021a0
lea eax, [esp + 0x28]
push eax
mov ecx, edi
call fcn.0041d270
mov eax, dword [eax]
push eax
lea ecx, [esp + 0xbc]
mov byte [esp + 0x40590], 0xc
call fcn.00414b00
lea ecx, [esp + 0x24]
mov byte [esp + 0x4058c], 0xb
call fcn.00401aa0
cmp dword [esp + 0xcc], ebx
jbe 0x4165d3
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push str.BBSTITLE
call fcn.004021a0
lea ecx, [esp + 0x28]
push ecx
mov ecx, edi
call fcn.0041d270
mov eax, dword [eax]
push eax
lea ecx, [esp + 0xd8]
mov byte [esp + 0x40590], 0xd
call fcn.00414b00
lea ecx, [esp + 0x24]
mov byte [esp + 0x4058c], 0xb
call fcn.00401aa0
push 0x3ff
lea edx, [esp + 0x40185]
push ebx
push edx
mov byte [esp + 0x4018c], 0
call fcn.00480970
mov eax, dword [esp + 0xe4]
add esp, 0xc
cmp dword [esp + 0xec], esi
jae 0x416730
lea eax, [esp + 0xd8]
mov ecx, dword [esp + 0xe8]
push ecx
lea edx, [esp + 0x40184]
push edx
push eax
call fcn.004136c0
lea eax, [esp + 0x4018c]
push eax
lea esi, [ebp + 0x25bc]
push 0x4bb294
push esi
call fcn.00407880
add esp, 0x14
mov ecx, esp
mov dword [esp + 0x34], esp
push esi
call fcn.00401a80
lea ecx, [esp + 0x28]
push ecx
mov ecx, ebp
call fcn.004148d0
push eax
lea ecx, [esp + 0x2c]
mov byte [esp + 0x40590], 0xe
call fcn.00401fb0
lea ecx, [esp + 0x24]
mov byte [esp + 0x4058c], 0xb
call fcn.00401aa0
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push str.BOARDIDX
call fcn.004021a0
lea edx, [esp + 0x28]
push edx
mov ecx, edi
call fcn.0041d270
mov eax, dword [eax]
push eax
lea ecx, [esp + 0x110]
mov byte [esp + 0x40590], 0xf
call fcn.00414b00
lea ecx, [esp + 0x24]
call fcn.00401aa0
lea ecx, [esp + 0x3c]
mov byte [esp + 0x4058c], 8
call fcn.00444a8e
lea ecx, [esp + 0xa4]
call fcn.00444a77
lea eax, [esp + 0xa4]
push eax
push ecx
mov ecx, esp
mov dword [esp + 0x38], esp
push str.APP_LIST_FILES_FILEINFO
mov byte [esp + 0x40598], 0x10
call fcn.004021a0
push ebx
lea ecx, [esp + 0x134]
call fcn.0041d810
mov eax, dword [esp + 0xac]
cmp eax, ebx
mov esi, eax
mov dword [esp + 0x30], esi
jg 0x416842
lea ecx, [esp + 0xa4]
jmp 0x4165d7
mov ecx, dword [ebp + 0x25c4]
cmp ecx, ebx
je 0x41685c
push eax
push 0x4bf774
push ebx
push ecx
call fcn.0040f260
add esp, 0x10
xor edi, edi
cmp esi, ebx
mov dword [esp + 0x24], edi
jle 0x417199
mov bl, 0x15
lea esp, [esp]
push edi
lea ecx, [esp + 0xa8]
call fcn.00413540
mov esi, eax
test esi, esi
je 0x41718a
push 0x47d8
call fcn.0042d6b0
add esp, 4
test eax, eax
je 0x4168a3
mov ecx, eax
call fcn.00406060
mov edi, eax
jmp 0x4168a5
xor edi, edi
push 0x47d8
push 0
push edi
call fcn.00480970
mov dword [edi], 0
mov eax, dword [esp + 0x11c]
add esp, 0xc
cmp dword [esp + 0x124], 0x10
jae 0x4168d3
lea eax, [esp + 0x110]
push eax
call fcn.00480251
add esp, 4
lea ecx, [ebp + 0x25bc]
mov dword [edi + 0x18], eax
mov dword [edi + 0x1c], edx
call fcn.004144f0
push eax
lea ecx, [edi + 0x4393]
push 0x4bb294
push ecx
call fcn.004809ea
add esp, 0xc
lea ecx, [esp + 0x14]
call fcn.00401a50
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push str.REALNAME
mov byte [esp + 0x40594], 0x11
call fcn.004021a0
lea edx, [esp + 0x90]
push edx
mov ecx, esi
call fcn.0041d270
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x40590], 0x12
call fcn.00401fb0
lea ecx, [esp + 0x8c]
mov byte [esp + 0x4058c], 0x11
call fcn.00401aa0
mov eax, dword [esp + 0x14]
mov ecx, dword [eax - 0xc]
push ecx
lea edx, [edi + 0x40]
push edx
push eax
call fcn.004136c0
add esp, 8
lea eax, [edi + 0x40]
mov ecx, esp
mov dword [esp + 0x20], esp
push eax
call fcn.004021a0
lea eax, [esp + 0x54]
push eax
mov ecx, ebp
call fcn.004148d0
mov ecx, dword [esp + 0x50]
push 0x1000
push ecx
lea eax, [edi + 0x40]
push eax
mov byte [esp + 0x40598], 0x13
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push str.FOLDERNAME
call fcn.004021a0
lea edx, [esp + 0x60]
push edx
mov ecx, esi
call fcn.0041d270
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x40590], 0x14
call fcn.00401fb0
lea ecx, [esp + 0x5c]
mov byte [esp + 0x4058c], 0x13
call fcn.00401aa0
mov eax, dword [esp + 0x14]
mov ecx, dword [eax - 0xc]
lea edx, [edi + 0x144]
push ecx
push edx
push eax
call fcn.004136c0
add esp, 8
lea eax, [edi + 0x144]
mov ecx, esp
mov dword [esp + 0x20], esp
push eax
call fcn.004021a0
lea eax, [esp + 0x58]
push eax
mov ecx, ebp
call fcn.004148d0
mov ecx, dword [esp + 0x54]
push 0x1000
push ecx
lea eax, [edi + 0x144]
push eax
mov byte [esp + 0x40598], bl
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push str.REALSIZE
call fcn.004021a0
lea edx, [esp + 0x80]
push edx
mov ecx, esi
call fcn.0041d270
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x40590], 0x16
call fcn.00401fb0
lea ecx, [esp + 0x7c]
mov byte [esp + 0x4058c], bl
call fcn.00401aa0
mov eax, dword [esp + 0x14]
push eax
call fcn.00480251
mov ecx, esp
mov dword [esp + 0x20], esp
push str.BOARD_FILEIDX
mov dword [edi + 0x28], eax
mov dword [edi + 0x2c], edx
call fcn.004021a0
lea ecx, [esp + 0x88]
push ecx
mov ecx, esi
call fcn.0041d270
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x40590], 0x17
call fcn.00401fb0
lea ecx, [esp + 0x84]
mov byte [esp + 0x4058c], bl
call fcn.00401aa0
mov edx, dword [esp + 0x14]
push edx
call fcn.00480251
mov ecx, esp
mov dword [esp + 0x20], esp
push str.FILECASH
mov dword [edi + 0x10], eax
mov dword [edi + 0x14], edx
call fcn.004021a0
lea eax, [esp + 0x64]
push eax
mov ecx, esi
call fcn.0041d270
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x40590], 0x18
call fcn.00401fb0
lea ecx, [esp + 0x60]
mov byte [esp + 0x4058c], bl
call fcn.00401aa0
mov ecx, dword [esp + 0x14]
push ecx
lea edx, [ebp + 0x25b0]
push 0x4bb294
push edx
call fcn.00407880
add esp, 8
mov ecx, esp
mov dword [esp + 0x20], esp
push str.CURRENTTIME
call fcn.004021a0
lea eax, [esp + 0xa0]
push eax
mov ecx, esi
call fcn.0041d270
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x40590], 0x19
call fcn.00401fb0
lea ecx, [esp + 0x9c]
mov byte [esp + 0x4058c], bl
call fcn.00401aa0
mov ecx, dword [esp + 0x14]
push ecx
lea edx, [ebp + 0x25ac]
push 0x4bb294
push edx
call fcn.00407880
add esp, 8
mov ecx, esp
mov dword [esp + 0x20], esp
push str.TRANSLOG
call fcn.004021a0
lea eax, [esp + 0x6c]
push eax
mov ecx, esi
call fcn.0041d270
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x40590], 0x1a
call fcn.00401fb0
lea ecx, [esp + 0x68]
mov byte [esp + 0x4058c], bl
call fcn.00401aa0
mov ecx, dword [esp + 0x14]
push ecx
lea edx, [ebp + 0x25b8]
push 0x4bb294
push edx
call fcn.00407880
add esp, 8
mov ecx, esp
mov dword [esp + 0x20], esp
push str.SELLID
call fcn.004021a0
lea eax, [esp + 0x98]
push eax
mov ecx, esi
call fcn.0041d270
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x40590], 0x1b
call fcn.00401fb0
lea ecx, [esp + 0x94]
mov byte [esp + 0x4058c], bl
call fcn.00401aa0
mov ecx, dword [esp + 0x14]
push ecx
lea edx, [ebp + 0x25a8]
push 0x4bb294
push edx
call fcn.00407880
add esp, 8
mov ecx, esp
mov dword [esp + 0x20], esp
push str.CP_IDX
call fcn.004021a0
lea eax, [esp + 0x74]
push eax
mov ecx, esi
call fcn.0041d270
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x40590], 0x1c
call fcn.00401fb0
lea ecx, [esp + 0x70]
mov byte [esp + 0x4058c], bl
call fcn.00401aa0
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push str.CP_CONTENTS_ID
call fcn.004021a0
lea ecx, [esp + 0x5c]
push ecx
mov ecx, esi
call fcn.0041d270
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x40590], 0x1d
call fcn.00401fb0
lea ecx, [esp + 0x58]
mov byte [esp + 0x4058c], bl
call fcn.00401aa0
mov edx, dword [esp + 0x14]
push 0x32
push edx
lea eax, [edi + 0x4360]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push str.MUREKAHASH
call fcn.004021a0
lea ecx, [esp + 0x7c]
push ecx
mov ecx, esi
call fcn.0041d270
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x40590], 0x1e
call fcn.00401fb0
lea ecx, [esp + 0x78]
mov byte [esp + 0x4058c], bl
call fcn.00401aa0
mov edx, dword [esp + 0x14]
push edx
lea eax, [ebp + 0x25a4]
push 0x4bb294
push eax
call fcn.00407880
add esp, 8
mov ecx, esp
mov dword [esp + 0x20], esp
push str.PURCHASEFILEIDX
call fcn.004021a0
lea ecx, [esp + 0x94]
push ecx
mov ecx, esi
call fcn.0041d270
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x40590], 0x1f
call fcn.00401fb0
lea ecx, [esp + 0x90]
mov byte [esp + 0x4058c], bl
call fcn.00401aa0
mov edx, dword [esp + 0x14]
push edx
lea eax, [ebp + 0x25b4]
push 0x4bb294
push eax
call fcn.00407880
add esp, 8
mov ecx, esp
mov dword [esp + 0x20], esp
push str.DOWNLOAD_LINK
call fcn.004021a0
lea ecx, [esp + 0x84]
push ecx
mov ecx, esi
call fcn.0041d270
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x40590], 0x20
call fcn.00401fb0
lea ecx, [esp + 0x80]
mov byte [esp + 0x4058c], bl
call fcn.00401aa0
lea ecx, [esp + 0x14]
call fcn.00407680
lea ecx, [esp + 0x14]
call fcn.00407630
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx - 0xc]
test eax, eax
jle 0x416dff
push eax
lea edx, [edi + 0x335c]
push edx
push ecx
call fcn.004136c0
add esp, 0xc
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push str.FILETYPE
call fcn.004021a0
lea eax, [esp + 0x9c]
push eax
mov ecx, esi
call fcn.0041d270
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x40590], 0x21
call fcn.00401fb0
lea ecx, [esp + 0x98]
mov byte [esp + 0x4058c], bl
call fcn.00401aa0
lea ecx, [esp + 0x14]
call fcn.00407680
lea ecx, [esp + 0x14]
call fcn.00407630
mov eax, dword [esp + 0x14]
cmp dword [eax - 0xc], 0
jle 0x416e6f
push eax
call fcn.0048023b
add esp, 4
mov dword [edi + 0x435c], eax
cmp dword [esp + 0xd0], 0x10
mov eax, dword [esp + 0xbc]
jae 0x416e87
lea eax, [esp + 0xbc]
push eax
call fcn.00480251
mov ecx, esp
mov dword [esp + 0x20], esp
push str.CATEGORY
mov dword [edi + 0x20], eax
mov dword [edi + 0x24], edx
call fcn.004021a0
lea ecx, [esp + 0x8c]
push ecx
mov ecx, esi
call fcn.0041d270
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x40590], 0x22
call fcn.00401fb0
lea ecx, [esp + 0x88]
mov byte [esp + 0x4058c], bl
call fcn.00401aa0
mov eax, dword [esp + 0x14]
mov ecx, dword [eax - 0xc]
push ecx
lea esi, [edi + 0x4793]
push esi
push eax
call fcn.004136c0
push esi
lea edx, [ebp + 0x25c0]
push 0x4bb294
push edx
call fcn.00407880
add esp, 0x18
lea eax, [ebp + 0x131c]
push eax
lea ecx, [esp + 0x1c]
call fcn.00401fb0
push 1
lea ecx, [esp + 0xa4]
push ecx
lea ecx, [esp + 0x20]
call fcn.00401cc0
push 0x5c
push eax
call fcn.00407030
add esp, 8
lea ecx, [esp + 0xa0]
mov byte [esp + 0x23], al
call fcn.00401aa0
cmp byte [esp + 0x23], 0
mov esi, dword [esp + 0x18]
je 0x416fa1
mov edx, dword [esi - 0xc]
lea eax, [edx + 1]
mov dword [esp + 0x34], eax
mov eax, dword [esi - 8]
sub eax, dword [esp + 0x34]
mov ecx, 1
sub ecx, dword [esi - 4]
mov dword [esp + 0x1c], edx
or eax, ecx
jge 0x416f81
mov ecx, dword [esp + 0x34]
push ecx
lea ecx, [esp + 0x1c]
call fcn.00401a00
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x34]
mov byte [edx + esi], 0x5c
test eax, eax
jl 0x417247
cmp eax, dword [esi - 8]
jg 0x417247
mov dword [esi - 0xc], eax
mov byte [eax + esi], 0
lea edx, [esp + 0x2c]
push 0x5c
push edx
call fcn.00407030
add esp, 8
test al, al
je 0x416fc6
lea eax, [esp + 0x2c]
push eax
lea ecx, [esp + 0x1c]
call fcn.004078c0
mov esi, dword [esp + 0x18]
push 1
lea ecx, [esp + 0x68]
push ecx
lea ecx, [esp + 0x20]
call fcn.00401cc0
push 0x4bb75c
push eax
call fcn.00407000
add esp, 8
lea ecx, [esp + 0x64]
mov byte [esp + 0x23], al
call fcn.00401aa0
cmp byte [esp + 0x23], 0
je 0x41700a
push 0x4bb75c
lea ecx, [esp + 0x1c]
call fcn.00407990
mov esi, dword [esp + 0x18]
mov edx, edi
sub edx, esi
mov eax, esi
add edx, 0x1144
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x417016
mov esi, dword [esp + 0x28]
cmp dword [esi - 0xc], 0
jle 0x4170ec
lea ecx, [esp + 0x38]
call fcn.00401a50
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x74]
push edx
mov byte [esp + 0x40598], 0x23
call fcn.00414710
add esp, 0xc
push eax
lea ecx, [esp + 0x3c]
mov byte [esp + 0x40590], 0x24
call fcn.00401fb0
lea ecx, [esp + 0x6c]
mov byte [esp + 0x4058c], 0x23
call fcn.00401aa0
mov eax, dword [esp + 0x38]
mov ecx, edi
sub ecx, eax
lea edx, [ecx + 0x3144]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x417087
mov edx, edi
sub edx, esi
mov eax, esi
add edx, 0x3248
lea ecx, [ecx]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x4170a0
push 0x4bb75c
lea eax, [esp + 0x2c]
push eax
lea ecx, [esp + 0x7c]
push ecx
call fcn.0040ff80
add esp, 0xc
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x40590], 0x25
call fcn.004078c0
lea ecx, [esp + 0x74]
call fcn.00401aa0
lea ecx, [esp + 0x38]
mov byte [esp + 0x4058c], bl
call fcn.00401aa0
lea eax, [edi + 0x40]
push eax
lea ecx, [esp + 0x1c]
call fcn.00407990
push 0x4bb75c
push 0x4bb758
lea ecx, [esp + 0x20]
call fcn.00407430
mov eax, dword [esp + 0x18]
mov edx, edi
sub edx, eax
add edx, 0x2144
lea ebx, [ebx]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x417120
xor edx, edx
mov dword [edi + 0x30], edx
mov dword [edi + 0x34], edx
mov dword [edi + 0x38], edx
mov dword [edi + 0x3c], edx
mov dword [edi + 4], edx
mov dword [edi + 8], edx
mov eax, dword [ebp + 0x25c4]
cmp eax, edx
je 0x41715b
lea ecx, [edi + 0x40]
push ecx
push 0x4bf698
push edx
push eax
call fcn.0040f260
add esp, 0x10
push edi
mov ecx, ebp
call fcn.00418f80
lea ecx, [esp + 0x54]
call fcn.00401aa0
lea ecx, [esp + 0x50]
call fcn.00401aa0
lea ecx, [esp + 0x14]
mov byte [esp + 0x4058c], 0x10
call fcn.00401aa0
mov edi, dword [esp + 0x24]
inc edi
cmp edi, dword [esp + 0x30]
mov dword [esp + 0x24], edi
jl 0x416870
lea ecx, [esp + 0xa4]
mov byte [esp + 0x4058c], 8
call fcn.00444a8e
lea ecx, [esp + 0x128]
mov byte [esp + 0x4058c], 7
call fcn.0041d150
lea ecx, [esp + 0xf0]
call fcn.004037c0
lea ecx, [esp + 0xd4]
call fcn.004037c0
lea ecx, [esp + 0xb8]
call fcn.004037c0
lea ecx, [esp + 0x10c]
call fcn.004037c0
lea ecx, [esp + 0x28]
call fcn.00401aa0
lea ecx, [esp + 0x2c]
call fcn.00401aa0
lea ecx, [esp + 0x18]
call fcn.00401aa0
lea ecx, [esp + 0x40594]
call fcn.00401aa0
mov eax, 1
mov ecx, dword [esp + 0x40584]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x4056c]
xor ecx, esp
call fcn.0047f7c9
add esp, 0x4057c
ret 4
push 0x80070057
call fcn.00401040
int3