Function at 0x415950
Capabilities:
Download url
Receive data

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x46ee5a
mov eax, dword fs:[0]
push eax
sub esp, 0xfe4
mov eax, dword [0x496104]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov eax, dword [ebp + 8]
mov dword [ebp - 0x6b4], eax
mov dword [ebp - 0x6b0], 0
mov dword [ebp - 4], 3
push 0xc
push 0x478a84
mov ecx, 0x497808
call fcn.00403980
lea ecx, [ebp - 0x704]
call fcn.00424f50
mov byte [ebp - 4], 4
mov byte [ebp - 4], 5
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x6a0], esp
push 0x478a80
call fcn.00404b50
mov byte [ebp - 4], 6
mov ecx, dword [ebp + 0xc]
push ecx
lea ecx, [ebp - 0x9bc]
call fcn.004029d0
mov byte [ebp - 4], 7
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x748]
call fcn.00404b50
mov esi, 8
mov byte [ebp - 4], 8
mov ebx, 0x10
cmp dword [eax + 0x18], ebx
jb 0x415a11
mov eax, dword [eax + 4]
jmp 0x415a14
add eax, 4
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x6c0], esp
push eax
call fcn.00404b50
mov byte [ebp - 4], 9
lea edx, [ebp - 0x72c]
push edx
mov byte [ebp - 4], 0xb
call fcn.00415770
add esp, 0x3c
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x748]
call fcn.004037f0
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x9b8]
mov eax, dword [ebp - 0x9bc]
cmp eax, ecx
je 0x415a68
push eax
call fcn.0044e656
add esp, 4
xor edi, edi
mov dword [ebp - 0x6bc], edi
lea ecx, [ebp - 0x72c]
call fcn.00423840
cmp edi, eax
jae 0x416754
push edi
lea ecx, [ebp - 0x72c]
call fcn.0040a470
push eax
lea ecx, [ebp - 0x230]
call fcn.004047a0
mov byte [ebp - 4], 0xf
cmp dword [ebp - 0x21c], 0
jne 0x415b4c
push str.URL_EMPTY
call fcn.0041ee10
add esp, 4
push 0x478a6c
lea ecx, [ebp - 0x230]
call fcn.0040c1d0
lea edx, [ebp - 0x230]
push edx
lea ecx, [ebp - 0x704]
call fcn.004091a0
lea eax, [ebp - 0x704]
push eax
mov esi, dword [ebp - 0x6b4]
mov ecx, esi
call fcn.00408ca0
or dword [ebp - 0x6b0], 1
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x230]
call fcn.004037f0
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x72c]
call fcn.00408d80
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x704]
call fcn.00408d80
mov byte [ebp - 4], 2
lea ecx, [ebp + 0xc]
call fcn.0040b040
mov byte [ebp - 4], 1
lea ecx, [ebp + 0x14]
call fcn.0040b040
mov byte [ebp - 4], 0
lea ecx, [ebp + 0x1c]
call fcn.0040b040
jmp 0x416800
lea ecx, [ebp - 0x68c]
call fcn.00403430
mov byte [ebp - 4], bl
mov ecx, dword [ebp + 0x10]
mov dword [ebp - 0x26c], ecx
mov edx, dword [ebp + 0x1c]
cmp dword [edx - 0xc], 0
je 0x415b7b
lea eax, [ebp + 0x1c]
push eax
lea ecx, [ebp - 0x280]
call fcn.00409580
lea ecx, [ebp - 0x690]
call fcn.00402f90
mov byte [ebp - 4], 0x11
mov ecx, dword [ebp + 0x14]
cmp dword [ecx - 0xc], 0
jne 0x415bd5
push 0
lea edx, [ebp - 0x6d4]
push edx
call fcn.0041fb90
add esp, 8
mov byte [ebp - 4], 0x12
push eax
lea ecx, [ebp - 0x690]
call fcn.004095f0
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0x6d4]
call fcn.0040b040
push str..exe
lea ecx, [ebp - 0x690]
call fcn.00404570
jmp 0x415c18
push 1
lea eax, [ebp - 0x6dc]
push eax
call fcn.0041fb90
add esp, 8
mov byte [ebp - 4], 0x13
push eax
lea ecx, [ebp - 0x690]
call fcn.004095f0
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0x6dc]
call fcn.0040b040
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [ebp - 0x690]
call fcn.00403bd0
lea ecx, [ebp - 0x694]
call fcn.00402f90
mov byte [ebp - 4], 0x14
push str._file:
lea ecx, [ebp - 0x694]
call fcn.00404570
mov eax, dword [ebp - 0x690]
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [ebp - 0x694]
call fcn.00403bd0
lea ecx, [ebp - 0x230]
push ecx
lea edx, [ebp - 0x24c]
push edx
call fcn.004083f0
add esp, 8
mov byte [ebp - 4], 0x15
push str._url:
lea ecx, [ebp - 0x694]
call fcn.00404570
cmp dword [ebp - 0x234], esi
mov eax, dword [ebp - 0x248]
jae 0x415c8b
lea eax, [ebp - 0x248]
push eax
lea ecx, [ebp - 0x694]
call fcn.00404570
cmp dword [ebp - 0x234], esi
mov eax, dword [ebp - 0x248]
jae 0x415cab
lea eax, [ebp - 0x248]
push eax
lea ecx, [ebp - 0x6ac]
call fcn.004052e0
mov byte [ebp - 4], 0x16
lea eax, [ebp - 0x6ac]
push eax
push str.URLDownloadToFile_URL:
lea ecx, [ebp - 0x6d8]
push ecx
call fcn.0040bd80
mov byte [ebp - 4], 0x17
push str._FILE:
push eax
lea edx, [ebp - 0x6c4]
push edx
call fcn.0040bcc0
mov byte [ebp - 4], 0x18
lea ecx, [ebp - 0x690]
push ecx
push eax
lea edx, [ebp - 0x6e4]
push edx
call fcn.0040bc20
add esp, 0x24
mov byte [ebp - 4], 0x19
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x9bc]
call fcn.004029d0
mov byte [ebp - 4], 0x1a
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x8ac]
call fcn.00404b50
mov byte [ebp - 4], 0x1b
cmp dword [eax + 0x18], ebx
jb 0x415d36
mov eax, dword [eax + 4]
jmp 0x415d39
add eax, 4
push eax
call fcn.0041ee10
add esp, 4
mov byte [ebp - 4], 0x1a
lea ecx, [ebp - 0x8ac]
call fcn.004037f0
mov byte [ebp - 4], 0x19
lea ecx, [ebp - 0x9b8]
mov eax, dword [ebp - 0x9bc]
cmp eax, ecx
je 0x415d6e
push eax
call fcn.0044e656
add esp, 4
mov byte [ebp - 4], 0x18
lea ecx, [ebp - 0x6e4]
call fcn.0040b040
mov byte [ebp - 4], 0x17
lea ecx, [ebp - 0x6c4]
call fcn.0040b040
mov byte [ebp - 4], 0x16
lea ecx, [ebp - 0x6d8]
call fcn.0040b040
push 0
call dword [sym.imp.ole32.dll_CoInitialize]
cmp dword [ebp - 0x234], esi
mov eax, dword [ebp - 0x248]
jae 0x415db7
lea eax, [ebp - 0x248]
lea edx, [ebp - 0x68c]
push edx
push ebx
mov ecx, dword [ebp - 0x690]
push ecx
push eax
push 0
call sub.urlmon.dll_URLDownloadToFileW
xor edx, edx
cmp dword [ebp - 0x288], edx
setne dl
xor ecx, ecx
cmp dword [ebp + 0x10], 1
sete cl
test ecx, edx
je 0x415eb6
mov dword [ebp - 0x26c], 1
mov dword [ebp - 0x250], 0xf
mov dword [ebp - 0x254], 0
mov byte [ebp - 0x264], 0
mov byte [ebp - 4], 0x1c
push 1
push 3
lea ecx, [ebp - 0xa44]
call fcn.00406e00
mov byte [ebp - 4], 0x1d
mov edx, dword [ebp - 0x288]
push edx
lea ecx, [ebp - 0xa3c]
call fcn.004069e0
lea eax, [ebp - 0x268]
push eax
lea ecx, [ebp - 0xa44]
push ecx
call fcn.00406c30
add esp, 8
cmp dword [ebp - 0x250], ebx
mov eax, dword [ebp - 0x264]
jae 0x415e62
lea eax, [ebp - 0x264]
push eax
lea ecx, [ebp - 0x748]
call fcn.00404b50
mov byte [ebp - 4], 0x1e
lea edx, [ebp - 0x748]
push edx
lea ecx, [ebp - 0x704]
call fcn.004091a0
mov byte [ebp - 4], 0x1d
lea ecx, [ebp - 0x748]
call fcn.004037f0
mov byte [ebp - 4], 0x1c
lea ecx, [ebp - 0xa44]
call fcn.00403b80
mov byte [ebp - 4], 0x16
lea ecx, [ebp - 0x268]
call fcn.004037f0
jmp 0x4166f0
xor esi, esi
mov dword [ebp - 0x6b8], esi
cmp eax, 0x8007000e
je 0x41655d
cmp eax, 0x800c0008
je 0x41640d
test eax, eax
lea eax, [ebp - 0x694]
push eax
je 0x416178
push str.SUCCEEDED_default_URLDownloadToFile
lea ecx, [ebp - 0x6cc]
push ecx
call fcn.0040bd80
add esp, 0xc
mov byte [ebp - 4], 0x3c
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0xcd8]
call fcn.004029d0
mov byte [ebp - 4], 0x3d
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x8c8]
call fcn.00404b50
mov byte [ebp - 4], 0x3e
cmp dword [eax + 0x18], ebx
jb 0x415f29
mov eax, dword [eax + 4]
jmp 0x415f2c
add eax, 4
push eax
call fcn.0041ee10
add esp, 4
mov byte [ebp - 4], 0x3d
lea ecx, [ebp - 0x8c8]
call fcn.004037f0
mov byte [ebp - 4], 0x3c
lea edx, [ebp - 0xcd4]
mov eax, dword [ebp - 0xcd8]
cmp eax, edx
je 0x415f61
push eax
call fcn.0044e656
add esp, 4
mov byte [ebp - 4], 0x16
lea ecx, [ebp - 0x6cc]
call fcn.0040b040
push ecx
mov ecx, esp
mov dword [ebp - 0x698], esp
push 0x476a05
call fcn.004046f0
mov byte [ebp - 4], 0x3f
push ecx
mov ecx, esp
mov dword [ebp - 0x69c], esp
lea eax, [ebp - 0x690]
push eax
call fcn.00403790
mov byte [ebp - 4], 0x40
mov byte [ebp - 4], 0x16
call fcn.0041f680
add esp, 8
test al, al
jne 0x416051
cmp esi, 3
jl 0x41609a
lea ecx, [ebp - 0x694]
push ecx
push 0x478968
lea edx, [ebp - 0x6c8]
push edx
call fcn.0040bd80
add esp, 0xc
mov byte [ebp - 4], 0x41
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0xac8]
call fcn.004029d0
mov byte [ebp - 4], 0x42
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x900]
call fcn.00404b50
mov byte [ebp - 4], 0x43
cmp dword [eax + 0x18], ebx
jb 0x41600a
mov eax, dword [eax + 4]
jmp 0x41600d
add eax, 4
push eax
call fcn.0041ee10
add esp, 4
mov byte [ebp - 4], 0x42
lea ecx, [ebp - 0x900]
call fcn.004037f0
mov byte [ebp - 4], 0x41
lea ecx, [ebp - 0xac4]
mov eax, dword [ebp - 0xac8]
cmp eax, ecx
je 0x416042
push eax
call fcn.0044e656
add esp, 4
mov byte [ebp - 4], 0x16
lea ecx, [ebp - 0x6c8]
call fcn.0040b040
push 0x478964
lea ecx, [ebp - 0x230]
call fcn.0040c1d0
mov edx, dword [ebp - 0x690]
push edx
lea ecx, [ebp - 0xee8]
call fcn.004029d0
mov byte [ebp - 4], 0x47
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x91c]
call fcn.00404b50
mov byte [ebp - 4], 0x48
cmp dword [eax + 0x18], ebx
jb 0x416145
mov eax, dword [eax + 4]
jmp 0x416148
lea edx, [ebp - 0x694]
push edx
push str.Wait_create_file_DownloadToFile
lea eax, [ebp - 0x6d0]
push eax
call fcn.0040bd80
add esp, 0xc
mov byte [ebp - 4], 0x44
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0xde0]
call fcn.004029d0
mov byte [ebp - 4], 0x45
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x938]
call fcn.00404b50
mov byte [ebp - 4], 0x46
cmp dword [eax + 0x18], ebx
jb 0x4160e7
mov eax, dword [eax + 4]
jmp 0x4160ea
add eax, 4
push eax
call fcn.0041ee10
add esp, 4
mov byte [ebp - 4], 0x45
lea ecx, [ebp - 0x938]
call fcn.004037f0
mov byte [ebp - 4], 0x44
lea ecx, [ebp - 0xddc]
mov eax, dword [ebp - 0xde0]
cmp eax, ecx
je 0x41611f
push eax
call fcn.0044e656
add esp, 4
mov byte [ebp - 4], 0x16
lea ecx, [ebp - 0x6d0]
call fcn.0040b040
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
inc esi
mov dword [ebp - 0x6b8], esi
jmp 0x415f70
add eax, 4
push eax
lea ecx, [ebp - 0x230]
call fcn.0040c1d0
mov byte [ebp - 4], 0x47
lea ecx, [ebp - 0x91c]
call fcn.004037f0
mov byte [ebp - 4], 0x16
lea ecx, [ebp - 0xee4]
mov eax, dword [ebp - 0xee8]
jmp 0x4166d1
push str.SUCCEEDED_URLDownloadToFile
lea ecx, [ebp - 0x6e8]
push ecx
call fcn.0040bd80
add esp, 0xc
mov byte [ebp - 4], 0x2f
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0xff0]
call fcn.004029d0
mov byte [ebp - 4], 0x30
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x83c]
call fcn.00404b50
mov byte [ebp - 4], 0x31
cmp dword [eax + 0x18], ebx
jb 0x4161be
mov eax, dword [eax + 4]
jmp 0x4161c1
add eax, 4
push eax
call fcn.0041ee10
add esp, 4
mov byte [ebp - 4], 0x30
lea ecx, [ebp - 0x83c]
call fcn.004037f0
mov byte [ebp - 4], 0x2f
lea edx, [ebp - 0xfec]
mov eax, dword [ebp - 0xff0]
cmp eax, edx
je 0x4161f6
push eax
call fcn.0044e656
add esp, 4
mov byte [ebp - 4], 0x16
lea ecx, [ebp - 0x6e8]
call fcn.0040b040
push ecx
mov ecx, esp
mov dword [ebp - 0x69c], esp
push 0x476a05
call fcn.004046f0
mov byte [ebp - 4], 0x32
push ecx
mov ecx, esp
mov dword [ebp - 0x698], esp
lea eax, [ebp - 0x690]
push eax
call fcn.00403790
mov byte [ebp - 4], 0x33
mov byte [ebp - 4], 0x16
call fcn.0041f680
add esp, 8
test al, al
jne 0x4162e6
cmp esi, 3
jl 0x41632f
lea ecx, [ebp - 0x694]
push ecx
push 0x478968
lea edx, [ebp - 0x6ec]
push edx
call fcn.0040bd80
add esp, 0xc
mov byte [ebp - 4], 0x34
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0xf6c]
call fcn.004029d0
mov byte [ebp - 4], 0x35
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x8e4]
call fcn.00404b50
mov byte [ebp - 4], 0x36
cmp dword [eax + 0x18], ebx
jb 0x41629f
mov eax, dword [eax + 4]
jmp 0x4162a2
add eax, 4
push eax
call fcn.0041ee10
add esp, 4
mov byte [ebp - 4], 0x35
lea ecx, [ebp - 0x8e4]
call fcn.004037f0
mov byte [ebp - 4], 0x34
lea ecx, [ebp - 0xf68]
mov eax, dword [ebp - 0xf6c]
cmp eax, ecx
je 0x4162d7
push eax
call fcn.0044e656
add esp, 4
mov byte [ebp - 4], 0x16
lea ecx, [ebp - 0x6ec]
call fcn.0040b040
push 0x478964
lea ecx, [ebp - 0x230]
call fcn.0040c1d0
mov edx, dword [ebp - 0x690]
push edx
lea ecx, [ebp - 0xe64]
call fcn.004029d0
mov byte [ebp - 4], 0x3a
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x890]
call fcn.00404b50
mov byte [ebp - 4], 0x3b
cmp dword [eax + 0x18], ebx
jb 0x4163da
mov eax, dword [eax + 4]
jmp 0x4163dd
lea edx, [ebp - 0x694]
push edx
push str.Wait_create_file_DownloadToFile
lea eax, [ebp - 0x6e0]
push eax
call fcn.0040bd80
add esp, 0xc
mov byte [ebp - 4], 0x37
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0xc54]
call fcn.004029d0
mov byte [ebp - 4], 0x38
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x874]
call fcn.00404b50
mov byte [ebp - 4], 0x39
cmp dword [eax + 0x18], ebx
jb 0x41637c
mov eax, dword [eax + 4]
jmp 0x41637f
add eax, 4
push eax
call fcn.0041ee10
add esp, 4
mov byte [ebp - 4], 0x38
lea ecx, [ebp - 0x874]
call fcn.004037f0
mov byte [ebp - 4], 0x37
lea ecx, [ebp - 0xc50]
mov eax, dword [ebp - 0xc54]
cmp eax, ecx
je 0x4163b4
push eax
call fcn.0044e656
add esp, 4
mov byte [ebp - 4], 0x16
lea ecx, [ebp - 0x6e0]
call fcn.0040b040
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
inc esi
mov dword [ebp - 0x6b8], esi
jmp 0x416205
add eax, 4
push eax
lea ecx, [ebp - 0x230]
call fcn.0040c1d0
mov byte [ebp - 4], 0x3a
lea ecx, [ebp - 0x890]
call fcn.004037f0
mov byte [ebp - 4], 0x16
lea ecx, [ebp - 0xe60]
mov eax, dword [ebp - 0xe64]
jmp 0x4166d1
lea eax, [ebp - 0x694]
push eax
push str.INET_E_DOWNLOAD_FAILURE_FAIL_URLDownloadToFile
lea ecx, [ebp - 0x6c0]
push ecx
call fcn.0040bd80
add esp, 0xc
mov byte [ebp - 4], 0x1f
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0xd5c]
call fcn.004029d0
mov byte [ebp - 4], 0x20
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x7e8]
call fcn.00404b50
mov byte [ebp - 4], 0x21
cmp dword [eax + 0x18], ebx
jb 0x41645a
mov eax, dword [eax + 4]
jmp 0x41645d
add eax, 4
push eax
call fcn.0041ee10
add esp, 4
mov byte [ebp - 4], 0x20
lea ecx, [ebp - 0x7e8]
call fcn.004037f0
mov byte [ebp - 4], 0x1f
lea edx, [ebp - 0xd58]
mov eax, dword [ebp - 0xd5c]
cmp eax, edx
je 0x416492
push eax
call fcn.0044e656
add esp, 4
mov byte [ebp - 4], 0x16
lea ecx, [ebp - 0x6c0]
call fcn.0040b040
push 0x478a6c
lea ecx, [ebp - 0x230]
call fcn.0040c1d0
mov eax, dword [ebp - 0x690]
push eax
lea ecx, [ebp - 0xb4c]
call fcn.004029d0
mov byte [ebp - 4], 0x22
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x804]
call fcn.00404b50
mov byte [ebp - 4], 0x23
cmp dword [eax + 0x18], ebx
jb 0x4164e3
mov eax, dword [eax + 4]
jmp 0x4164e6
add eax, 4
push eax
lea ecx, [ebp - 0x230]
call fcn.0040c1d0
mov byte [ebp - 4], 0x22
lea ecx, [ebp - 0x804]
call fcn.004037f0
mov byte [ebp - 4], 0x16
lea ecx, [ebp - 0xb48]
mov eax, dword [ebp - 0xb4c]
cmp eax, ecx
je 0x41651e
push eax
call fcn.0044e656
add esp, 4
lea edx, [ebp - 0x230]
push edx
lea ecx, [ebp - 0x704]
call fcn.004091a0
mov byte [ebp - 4], 0x24
mov dword [ebp - 4], 0x16
jmp 0x4166f0
lea eax, [ebp - 0x694]
push eax
push str.E_OUTOFMEMORY_FAIL_URLDownloadToFile
lea ecx, [ebp - 0x6a0]
push ecx
call fcn.0040bd80
add esp, 0xc
mov byte [ebp - 4], 0x26
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0xbd0]
call fcn.004029d0
mov byte [ebp - 4], 0x27
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x820]
call fcn.00404b50
mov byte [ebp - 4], 0x28
cmp dword [eax + 0x18], ebx
jb 0x4165aa
mov eax, dword [eax + 4]
jmp 0x4165ad
add eax, 4
push eax
call fcn.0041ee10
add esp, 4
mov byte [ebp - 4], 0x27
lea ecx, [ebp - 0x820]
call fcn.004037f0
mov byte [ebp - 4], 0x26
lea edx, [ebp - 0xbcc]
mov eax, dword [ebp - 0xbd0]
cmp eax, edx
je 0x4165e2
push eax
call fcn.0044e656
add esp, 4
mov byte [ebp - 4], 0x16
lea ecx, [ebp - 0x6a0]
call fcn.0040b040
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x69c], esp
push 0x476a05
call fcn.00404b50
mov byte [ebp - 4], 0x29
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x698], esp
push 0x476a05
call fcn.00404b50
mov byte [ebp - 4], 0x2a
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x6a4], esp
push 0x476a05
call fcn.00404b50
mov byte [ebp - 4], 0x2b
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x6a8], esp
push str.E_OUTOFMEMORY_FAIL
call fcn.00404b50
mov byte [ebp - 4], 0x2c
mov byte [ebp - 4], 0x16
call fcn.0041d270
add esp, 0x70
push 0x478a6c
lea ecx, [ebp - 0x230]
call fcn.0040c1d0
mov eax, dword [ebp - 0x690]
push eax
lea ecx, [ebp - 0x7cc]
call fcn.004029d0
mov byte [ebp - 4], 0x2d
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x858]
call fcn.00404b50
mov byte [ebp - 4], 0x2e
cmp dword [eax + 0x18], ebx
jb 0x4166a3
mov eax, dword [eax + 4]
jmp 0x4166a6
add eax, 4
push eax
lea ecx, [ebp - 0x230]
call fcn.0040c1d0
mov byte [ebp - 4], 0x2d
lea ecx, [ebp - 0x858]
call fcn.004037f0
mov byte [ebp - 4], 0x16
lea ecx, [ebp - 0x7c8]
mov eax, dword [ebp - 0x7cc]
cmp eax, ecx
je 0x4166de
push eax
call fcn.0044e656
add esp, 4
lea edx, [ebp - 0x230]
push edx
lea ecx, [ebp - 0x704]
call fcn.004091a0
mov byte [ebp - 4], 0x15
lea ecx, [ebp - 0x6ac]
call fcn.0040b040
mov byte [ebp - 4], 0x14
lea ecx, [ebp - 0x24c]
call fcn.00407880
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0x694]
call fcn.0040b040
mov byte [ebp - 4], bl
lea ecx, [ebp - 0x690]
call fcn.0040b040
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0x68c]
call fcn.004034d0
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x230]
call fcn.004037f0
inc edi
mov esi, 8
jmp 0x415a6a
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x72c]
call fcn.00408d80
mov dword [ebp - 4], 4
lea eax, [ebp - 0x704]
push eax
mov esi, dword [ebp - 0x6b4]
mov ecx, esi
call fcn.00408ca0
or dword [ebp - 0x6b0], 1
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x704]
call fcn.00408d80
mov byte [ebp - 4], 2
mov eax, dword [ebp + 0xc]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4167b7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 1
mov eax, dword [ebp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4167da
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [ebp - 4], 0
mov eax, dword [ebp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x416800
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.0044ecf7
mov esp, ebp
pop ebp
ret