Function at 0x470ab0
Capabilities:
Check if file exists
Enumerate files on windows
Extract resource via kernel32 functions
Get file attributes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4f22f1
mov eax, dword fs:[0]
push eax
sub esp, 0x304
mov eax, dword [0x541100]
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 eax, dword [ebp + 8]
mov ebx, edx
mov dword [ebp - 0x28c], eax
mov dword [ebp - 0x2ac], ecx
mov dword [ebp - 0x2c8], ebx
xor esi, esi
mov dword [ebp - 4], esi
mov dword [ebp - 0x264], esi
call fcn.004bdbe3
xor ecx, ecx
cmp eax, esi
setne cl
cmp ecx, esi
jne 0x470b1a
push 0x80004005
call fcn.00420000
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x2a0], eax
mov ecx, 0x50206c
mov byte [ebp - 4], 1
test ecx, 0xffff0000
jne 0x470b5b
mov edx, ecx
movzx edi, dx
push edi
call fcn.004c5d7f
cmp eax, esi
je 0x470b79
push edi
push eax
lea ecx, [ebp - 0x2a0]
call fcn.00422eb3
jmp 0x470b79
push 0x50206c
call fcn.004ccd1a
add esp, 4
push eax
push 0x50206c
lea ecx, [ebp - 0x2a0]
call fcn.00423404
lea eax, [ebp - 0x2e0]
push eax
mov byte [ebp - 4], 2
call fcn.004730a0
push 3
mov byte [ebp - 4], 3
mov ecx, dword [ebp + 0xc]
push esi
push ecx
mov dword [ebx], esi
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov edi, eax
mov dword [ebp - 0x270], edi
cmp edi, esi
jne 0x470c0b
lea edx, [ebp - 0x2e0]
push edx
mov byte [ebp - 4], 2
call fcn.00472f70
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x2a0]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x470bde
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [ebp - 4], 0xffffffff
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 0x470c04
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor eax, eax
jmp 0x47254d
lea ecx, [ebp - 0x2f8]
push ecx
call fcn.004730a0
lea edx, [ebp - 0x2f8]
push edx
push 0x47ce70
push 0x18
push edi
mov byte [ebp - 4], 4
call dword [sym.imp.KERNEL32.dll_EnumResourceNamesW]
mov edi, dword [ebp - 0x2ec]
mov eax, dword [ebp - 0x2e8]
cmp edi, eax
jbe 0x470c4b
call fcn.004cce91
mov eax, dword [ebp - 0x2e8]
mov ebx, dword [ebp - 0x2f8]
mov dword [ebp - 0x298], ebx
mov esi, edi
lea esp, [esp]
mov edi, eax
cmp dword [ebp - 0x2ec], eax
jbe 0x470c6f
call fcn.004cce91
test ebx, ebx
je 0x470c7b
cmp ebx, dword [ebp - 0x2f8]
je 0x470c80
call fcn.004cce91
cmp esi, edi
je 0x470e0e
test ebx, ebx
jne 0x470df4
call fcn.004cce91
xor eax, eax
cmp esi, dword [eax + 0x10]
jb 0x470ca1
call fcn.004cce91
test ebx, ebx
jne 0x470dfb
call fcn.004cce91
xor eax, eax
cmp esi, dword [eax + 0x10]
jb 0x470cba
call fcn.004cce91
mov eax, dword [esi]
mov edi, dword [ebp - 0x270]
push 0x18
push eax
push edi
call dword [sym.imp.KERNEL32.dll_FindResourceW]
mov ebx, eax
test ebx, ebx
je 0x470d88
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_LoadResource]
test eax, eax
je 0x470d88
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov ecx, dword [ebp - 0x270]
push ebx
push ecx
mov edi, eax
call dword [sym.imp.KERNEL32.dll_SizeofResource]
test edi, edi
je 0x470d88
push eax
lea edx, [ebp - 0x268]
push edx
mov ecx, edi
call fcn.00477cd0
mov byte [ebp - 4], 5
mov eax, dword [ebp + 0xc]
add esp, 4
add eax, 0xfffffff0
mov dword [ebp - 0x2a4], esp
mov edi, esp
push eax
call fcn.00423475
add eax, 0x10
add esp, 4
mov dword [edi], eax
lea eax, [ebp - 0x2e0]
mov byte [ebp - 4], 6
mov edi, dword [ebp - 0x268]
push eax
push ecx
add edi, 0xfffffff0
mov dword [ebp - 0x2a8], esp
mov ebx, esp
push edi
call fcn.00423475
add eax, 0x10
mov dword [ebx], eax
add esp, 4
mov byte [ebp - 4], 5
call fcn.0046ff40
mov byte [ebp - 4], 4
lea ecx, [edi + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x470d88
mov ecx, dword [edi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push edi
call edx
mov edi, dword [ebp - 0x298]
test edi, edi
jne 0x470e02
call fcn.004cce91
xor eax, eax
cmp esi, dword [eax + 0x10]
jb 0x470da3
call fcn.004cce91
test dword [esi], 0xffff0000
je 0x470dcb
test edi, edi
jne 0x470e06
call fcn.004cce91
xor eax, eax
cmp esi, dword [eax + 0x10]
jb 0x470dc0
call fcn.004cce91
mov eax, dword [esi]
push eax
call fcn.004ccf97
add esp, 4
test edi, edi
jne 0x470e0a
call fcn.004cce91
xor eax, eax
cmp esi, dword [eax + 0x10]
jb 0x470de0
call fcn.004cce91
mov eax, dword [ebp - 0x2e8]
mov ebx, dword [ebp - 0x298]
add esi, 4
jmp 0x470c60
mov eax, dword [ebx]
jmp 0x470c97
mov eax, dword [ebx]
jmp 0x470cb0
mov eax, dword [edi]
jmp 0x470d99
mov eax, dword [edi]
jmp 0x470db6
mov eax, dword [edi]
jmp 0x470dd6
mov ecx, dword [ebp - 0x270]
push ecx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
push 0x50b8c0
lea edx, [ebp + 0xc]
push edx
lea eax, [ebp - 0x270]
push eax
call fcn.00422a76
mov ecx, dword [ebp - 0x270]
add esp, 0xc
push ecx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
xor edx, edx
cmp eax, 0xffffffff
mov eax, dword [ebp - 0x270]
setne dl
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
mov edi, edx
mov edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x470e6e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test edi, edi
je 0x470f5a
push 1
push ecx
mov ecx, esp
mov dword [ebp - 0x2a4], esp
push 0x50b8c0
lea edx, [ebp + 0xc]
push edx
push ecx
mov dword [ebp - 0x270], 0
lea ebx, [ebp - 0x270]
lea edi, [ebp - 0x268]
call fcn.00422a76
add esp, 0xc
call fcn.00477f70
add esp, 8
cmp eax, 0xffffffff
je 0x470f5a
mov eax, dword [ebp - 0x270]
mov esi, dword [ebp - 0x268]
test eax, eax
jbe 0x470f51
push eax
lea eax, [ebp - 0x268]
push eax
mov ecx, esi
call fcn.00477cd0
mov byte [ebp - 4], 7
mov eax, dword [ebp + 0xc]
add esp, 4
add eax, 0xfffffff0
mov dword [ebp - 0x2a4], esp
mov edi, esp
push eax
call fcn.00423475
add eax, 0x10
add esp, 4
mov dword [edi], eax
lea ecx, [ebp - 0x2e0]
mov byte [ebp - 4], 8
mov edi, dword [ebp - 0x268]
push ecx
push ecx
add edi, 0xfffffff0
mov dword [ebp - 0x2a8], esp
mov ebx, esp
push edi
call fcn.00423475
add eax, 0x10
mov dword [ebx], eax
add esp, 4
mov byte [ebp - 4], 7
call fcn.0046ff40
mov byte [ebp - 4], 4
lea edx, [edi + 0xc]
or eax, 0xffffffff
lock xadd dword [edx], eax
dec eax
test eax, eax
jg 0x470f51
mov ecx, dword [edi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push edi
call eax
push esi
call fcn.004ccf97
add esp, 4
mov esi, dword [ebp - 0x2ac]
mov eax, dword [esi + 0x10]
mov dword [ebp - 0x268], eax
cmp dword [esi + 0xc], eax
jbe 0x470f73
call fcn.004cce91
mov edi, dword [esi + 0xc]
mov ebx, dword [esi]
cmp edi, dword [esi + 0x10]
jbe 0x470f82
call fcn.004cce91
mov ecx, dword [ebp - 0x268]
mov eax, dword [esi]
push ecx
push ebx
push edi
push eax
lea edx, [ebp - 0x298]
push edx
call fcn.004630b0
mov esi, dword [ebp - 0x2d4]
mov ebx, dword [ebp - 0x2d0]
cmp esi, ebx
jbe 0x470fb5
call fcn.004cce91
mov ebx, dword [ebp - 0x2d0]
mov edi, dword [ebp - 0x2e0]
mov dword [ebp - 0x288], edi
mov dword [ebp - 0x284], esi
cmp dword [ebp - 0x2d4], ebx
jbe 0x470fd4
call fcn.004cce91
xor esi, esi
cmp edi, esi
je 0x470fe2
cmp edi, dword [ebp - 0x2e0]
je 0x470fe7
call fcn.004cce91
cmp dword [ebp - 0x284], ebx
je 0x472347
mov dword [ebp - 0x26c], esi
lea esp, [esp]
mov eax, dword [ebp - 0x288]
test eax, eax
jne 0x47104b
call fcn.004cce91
xor eax, eax
mov esi, dword [ebp - 0x284]
cmp esi, dword [eax + 0x10]
jb 0x471021
call fcn.004cce91
mov edi, dword [esi + 8]
mov ecx, dword [edi - 0x10]
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
sub edi, 0x10
call edx
cmp dword [edi + 0xc], 0
lea ecx, [edi + 0xc]
jl 0x47104f
cmp eax, dword [edi]
jne 0x47104f
mov ebx, edi
mov eax, 1
lock xadd dword [ecx], eax
jmp 0x47108a
mov eax, dword [eax]
jmp 0x471011
mov ecx, dword [edi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov ebx, eax
test ebx, ebx
je 0x47232e
mov eax, dword [edi + 4]
mov dword [ebx + 4], eax
mov eax, dword [edi + 4]
lea ecx, [eax + eax + 2]
push ecx
add edi, 0x10
lea edx, [eax + eax + 2]
push edi
push edx
lea eax, [ebx + 0x10]
push eax
call fcn.004cc7a1
add esp, 0x10
add ebx, 0x10
mov dword [ebp - 0x29c], ebx
mov byte [ebp - 4], 9
mov edi, dword [ebx - 0xc]
mov eax, dword [ebx - 8]
mov ecx, 1
sub ecx, dword [ebx - 4]
sub eax, edi
or eax, ecx
jge 0x4710bd
push edi
lea ecx, [ebp - 0x29c]
call fcn.0042052a
mov ebx, dword [ebp - 0x29c]
lea ecx, [edi + 1]
push ecx
push ebx
call fcn.004cff24
add esp, 8
test edi, edi
jl 0x47233d
cmp edi, dword [ebx - 8]
jg 0x47233d
mov dword [ebx - 0xc], edi
xor edx, edx
mov word [ebx + edi*2], dx
mov edi, dword [ebp - 0x28c]
lea eax, [ebp - 0x29c]
push eax
add edi, 0xcc
call fcn.00472e00
lea ecx, [ebp - 0x310]
push ecx
mov ecx, eax
call fcn.00462c40
mov byte [ebp - 4], 0xa
mov ebx, dword [ebp - 0x304]
mov eax, dword [ebp - 0x300]
cmp ebx, eax
jbe 0x471129
call fcn.004cce91
mov eax, dword [ebp - 0x300]
mov edi, dword [ebp - 0x310]
mov esi, ebx
mov dword [ebp - 0x27c], edi
mov dword [ebp - 0x278], esi
lea ecx, [ecx]
mov ebx, eax
cmp dword [ebp - 0x304], eax
jbe 0x47114f
call fcn.004cce91
test edi, edi
je 0x47115b
cmp edi, dword [ebp - 0x310]
je 0x471160
call fcn.004cce91
cmp esi, ebx
je 0x4711fc
test edi, edi
jne 0x4711f0
call fcn.004cce91
cmp esi, dword [edi + 0x10]
jb 0x47117f
call fcn.004cce91
mov eax, dword [ebp - 0x288]
test eax, eax
jne 0x4711f4
call fcn.004cce91
xor eax, eax
mov edx, dword [ebp - 0x284]
cmp edx, dword [eax + 0x10]
jb 0x4711a0
call fcn.004cce91
mov esi, dword [ebp - 0x278]
mov edi, dword [esi]
mov ebx, dword [ebp - 0x284]
call fcn.004728d0
test eax, eax
jne 0x471724
mov eax, dword [ebp - 0x27c]
test eax, eax
jne 0x4711f8
call fcn.004cce91
xor eax, eax
cmp esi, dword [eax + 0x10]
jb 0x4711d6
call fcn.004cce91
mov eax, dword [ebp - 0x300]
mov edi, dword [ebp - 0x27c]
add esi, 4
mov dword [ebp - 0x278], esi
jmp 0x471140
mov edi, dword [edi]
jmp 0x471175
mov eax, dword [eax]
jmp 0x471190
mov eax, dword [eax]
jmp 0x4711cc
cmp dword [ebp - 0x26c], 0
jne 0x472260
mov eax, dword [ebp - 0x288]
test eax, eax
jne 0x47134f
call fcn.004cce91
xor eax, eax
mov ecx, dword [ebp - 0x284]
cmp ecx, dword [eax + 0x10]
jb 0x47122e
call fcn.004cce91
mov esi, dword [ebp - 0x284]
mov eax, dword [esi + 8]
push str.Microsoft.Windows.Common_Controls
push eax
call fcn.004cca64
add esp, 8
test eax, eax
je 0x472260
mov edi, dword [ebp - 0x288]
test edi, edi
jne 0x471356
call fcn.004cce91
xor eax, eax
cmp esi, dword [eax + 0x10]
jb 0x47126c
call fcn.004cce91
test edi, edi
jne 0x47135d
call fcn.004cce91
xor eax, eax
cmp esi, dword [eax + 0x10]
jb 0x471285
call fcn.004cce91
test edi, edi
jne 0x471364
call fcn.004cce91
xor eax, eax
cmp esi, dword [eax + 0x10]
jb 0x47129e
call fcn.004cce91
mov edx, dword [esi + 0x14]
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0x10]
push edx
push eax
push ecx
lea edx, [ebp - 0x270]
push str._s__s__s_
push edx
call fcn.004777e0
add esp, 0x14
push 0x24c
lea eax, [ebp - 0x25c]
push 0
mov byte [ebp - 4], 0x14
push eax
mov dword [ebp - 0x260], 0
call fcn.004cd900
add esp, 0xc
push 0
push 0
push 0
lea ecx, [ebp - 0x260]
push ecx
push 0
push ecx
mov edi, esp
mov dword [ebp - 0x268], esp
mov dword [ebp - 0x26c], edi
call fcn.004bdbe3
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x470b10
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [edi], eax
mov esi, 0x50057c
shr esi, 0x10
mov byte [ebp - 4], 0x15
test esi, esi
jne 0x47136b
mov ecx, 0x50057c
movzx ebx, cx
push ebx
call fcn.004c5d7f
test eax, eax
je 0x471385
push ebx
push eax
mov ecx, edi
call fcn.00422eb3
jmp 0x471385
mov eax, dword [eax]
jmp 0x47121e
mov eax, dword [edi]
jmp 0x471262
mov eax, dword [edi]
jmp 0x47127b
mov eax, dword [edi]
jmp 0x471294
push 0x50057c
call fcn.004ccd1a
add esp, 4
push eax
push 0x50057c
mov ecx, edi
call fcn.00423404
mov byte [ebp - 4], 0x16
mov eax, dword [ebp - 0x270]
push ecx
add eax, 0xfffffff0
mov dword [ebp - 0x26c], esp
mov edi, esp
push eax
call fcn.00423475
add eax, 0x10
mov dword [edi], eax
mov edx, dword [ebp - 0x28c]
mov byte [ebp - 4], 0x17
mov eax, dword [edx]
sub eax, 0x10
mov dword [ebp - 0x274], esp
mov edi, esp
push eax
call fcn.00423475
add eax, 0x10
mov dword [edi], eax
add esp, 4
lea edi, [ebp - 0x2a8]
mov byte [ebp - 4], 0x14
call fcn.004770a0
mov eax, dword [eax]
add esp, 0xc
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileExW]
mov edi, eax
mov eax, dword [ebp - 0x2a8]
add eax, 0xfffffff0
mov dword [ebp - 0x274], edi
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x471410
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push edi
push ecx
mov edi, esp
mov dword [ebp - 0x268], esp
mov dword [ebp - 0x26c], edi
call fcn.004bdbe3
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x470b10
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [edi], eax
mov byte [ebp - 4], 0x18
test esi, esi
jne 0x471467
mov ecx, 0x50057c
movzx ebx, cx
push ebx
call fcn.004c5d7f
test eax, eax
je 0x471481
push ebx
push eax
mov ecx, edi
call fcn.00422eb3
jmp 0x471481
push 0x50057c
call fcn.004ccd1a
add esp, 4
push eax
push 0x50057c
mov ecx, edi
call fcn.00423404
mov byte [ebp - 4], 0x19
mov eax, dword [ebp - 0x270]
push ecx
add eax, 0xfffffff0
mov dword [ebp - 0x26c], esp
mov edi, esp
push eax
call fcn.00423475
add eax, 0x10
mov dword [edi], eax
mov edx, dword [ebp - 0x28c]
mov byte [ebp - 4], 0x1a
mov eax, dword [edx]
sub eax, 0x10
mov dword [ebp - 0x280], esp
mov edi, esp
push eax
call fcn.00423475
add eax, 0x10
mov dword [edi], eax
add esp, 4
lea edi, [ebp - 0x2a4]
mov byte [ebp - 4], 0x14
call fcn.004770a0
add esp, 0xc
mov byte [ebp - 4], 0x1b
mov eax, dword [eax]
push eax
push ecx
mov edi, esp
mov dword [ebp - 0x280], esp
mov dword [ebp - 0x268], edi
call fcn.004bdbe3
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x470b10
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [edi], eax
mov ecx, str.Searching_for_deferred_assembly:__s0x_x
mov byte [ebp - 4], 0x1c
test ecx, 0xffff0000
jne 0x47153c
mov edx, ecx
movzx ebx, dx
push ebx
call fcn.004c5d7f
test eax, eax
je 0x471556
push ebx
push eax
mov ecx, edi
call fcn.00422eb3
jmp 0x471556
push str.Searching_for_deferred_assembly:__s0x_x
call fcn.004ccd1a
add esp, 4
push eax
push str.Searching_for_deferred_assembly:__s0x_x
mov ecx, edi
call fcn.00423404
push ecx
mov byte [ebp - 4], 0x1d
mov edi, esp
mov dword [ebp - 0x268], esp
mov dword [ebp - 0x268], edi
call fcn.004bdbe3
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x470b10
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [edi], eax
mov ecx, str.General
mov byte [ebp - 4], 0x1e
test ecx, 0xffff0000
jne 0x4715b6
mov edx, ecx
movzx ebx, dx
push ebx
call fcn.004c5d7f
test eax, eax
je 0x4715d0
push ebx
push eax
mov ecx, edi
call fcn.00422eb3
jmp 0x4715d0
push str.General
call fcn.004ccd1a
add esp, 4
push eax
push str.General
mov ecx, edi
call fcn.00423404
mov byte [ebp - 4], 0x1d
push 1
mov byte [ebp - 4], 0x1b
call fcn.0047c9c0
mov byte [ebp - 4], 0x14
mov eax, dword [ebp - 0x2a4]
add eax, 0xfffffff0
add esp, 0x14
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x471608
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp dword [ebp - 0x274], 0xffffffff
je 0x47223a
mov esi, dword [sym.imp.KERNEL32.dll_FindNextFileW]
mov dword [ebp - 0x26c], 1
push 2
push ecx
mov dword [ebp - 0x280], esp
mov edi, esp
push ecx
mov ecx, esp
mov dword [ebp - 0x280], esp
push 0x50057c
call fcn.00422827
push ecx
mov byte [ebp - 4], 0x1f
lea edx, [ebp - 0x234]
mov ecx, esp
mov dword [ebp - 0x268], esp
push edx
call fcn.00422827
mov eax, dword [ebp - 0x28c]
mov byte [ebp - 4], 0x20
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [ebp - 0x290], esp
mov ebx, esp
push eax
call fcn.00423475
add eax, 0x10
mov dword [ebx], eax
add esp, 4
mov byte [ebp - 4], 0x14
call fcn.004770a0
mov ecx, dword [ebp - 0x28c]
add esp, 0xc
push ecx
call fcn.0046f700
mov eax, dword [ebp - 0x274]
lea edx, [ebp - 0x260]
push edx
push eax
call esi
test eax, eax
jne 0x471625
mov ecx, dword [ebp - 0x274]
push ecx
call dword [sym.imp.KERNEL32.dll_FindClose]
mov byte [ebp - 4], 0xa
mov eax, dword [ebp - 0x270]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4716e5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [ebp - 0x310]
push ecx
mov byte [ebp - 4], 9
call fcn.00473100
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x29c]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x471000
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x471000
mov edi, dword [ebp - 0x27c]
test edi, edi
jne 0x4718bf
call fcn.004cce91
xor eax, eax
cmp esi, dword [eax + 0x10]
jb 0x471743
call fcn.004cce91
mov eax, dword [esi]
mov ecx, dword [eax + 0x68]
sub ecx, dword [eax + 0x64]
add eax, 0x58
sar ecx, 2
push ecx
test edi, edi
jne 0x4718c6
call fcn.004cce91
cmp esi, dword [edi + 0x10]
jb 0x471769
call fcn.004cce91
mov edx, dword [esi]
mov eax, dword [edx + 8]
mov ecx, dword [ebp + 0xc]
push eax
push ecx
push ecx
mov esi, esp
mov dword [ebp - 0x290], esp
mov dword [ebp - 0x274], esi
call fcn.004bdbe3
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x470b10
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esi], eax
mov ecx, str.DetermineAssembliesToCreate_SxS_:__s_requires_products_assembly___s_._This_assembly_has__d_redirects:
mov byte [ebp - 4], 0xb
test ecx, 0xffff0000
jne 0x4718cd
mov edx, ecx
movzx ebx, dx
push ebx
call fcn.004c5d7f
mov esi, eax
test esi, esi
je 0x4719c3
mov eax, ebx
shr eax, 4
inc eax
movzx ecx, ax
push 6
push ecx
push esi
call dword [sym.imp.KERNEL32.dll_FindResourceW]
mov dword [ebp - 0x264], eax
test eax, eax
je 0x4719c3
push eax
push esi
call dword [sym.imp.KERNEL32.dll_LoadResource]
test eax, eax
je 0x4719c3
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov edi, eax
test edi, edi
je 0x4719c3
mov edx, dword [ebp - 0x264]
push edx
push esi
call dword [sym.imp.KERNEL32.dll_SizeofResource]
add eax, edi
and ebx, 0xf
jbe 0x471839
cmp edi, eax
jae 0x4719c3
sub ebx, 1
movzx ecx, word [edi]
lea edi, [edi + ecx*2 + 2]
jne 0x471825
cmp edi, eax
jae 0x4719c3
movzx eax, word [edi]
test ax, ax
je 0x4719c3
mov esi, dword [ebp - 0x274]
movzx ebx, ax
mov eax, dword [esi]
sub eax, 0x10
mov ecx, 1
sub ecx, dword [eax + 0xc]
mov eax, dword [eax + 8]
sub eax, ebx
or eax, ecx
jge 0x471874
push ebx
mov ecx, esi
call fcn.0042052a
movzx eax, word [edi]
mov edx, dword [esi]
add edi, 2
mov dword [ebp - 0x264], edx
cmp eax, 0xffffffff
jne 0x471891
push edi
call fcn.004ccd1a
add esp, 4
inc eax
mov ecx, dword [ebp - 0x264]
add eax, eax
push eax
push edi
lea esi, [ebx + ebx]
push esi
push ecx
call fcn.004cc7a1
add esp, 0x10
cmp eax, 0x50
ja case.0x471fc9.1
movzx edx, byte [eax + 0x47257c]
jmp dword [edx*4 + 0x47256c]
mov eax, dword [edi]
jmp 0x471739
mov edi, dword [edi]
jmp 0x47175f
push str.DetermineAssembliesToCreate_SxS_:__s_requires_products_assembly___s_._This_assembly_has__d_redirects:
call fcn.004ccd1a
mov ebx, eax
add esp, 4
test ebx, ebx
jne 0x47193a
mov ecx, dword [esi]
mov edi, dword [ecx - 0x10]
cmp dword [ecx - 0xc], ebx
lea eax, [ecx - 0x10]
je 0x4719c3
cmp dword [eax + 0xc], ebx
lea edx, [eax + 0xc]
jge 0x471911
cmp dword [ecx - 8], ebx
jl 0x47233d
mov dword [ecx - 0xc], ebx
mov edx, dword [esi]
xor eax, eax
mov word [edx], ax
jmp 0x4719c3
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x471927
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [edi]
mov eax, dword [edx + 0xc]
mov ecx, edi
call eax
add eax, 0x10
mov dword [esi], eax
jmp 0x4719c3
mov esi, dword [ebp - 0x274]
mov eax, dword [esi]
mov ecx, dword [eax - 0xc]
mov dword [ebp - 0x264], ecx
mov edi, str.DetermineAssembliesToCreate_SxS_:__s_requires_products_assembly___s_._This_assembly_has__d_redirects:
sub edi, eax
mov ecx, 1
sub ecx, dword [eax - 4]
mov eax, dword [eax - 8]
sub eax, ebx
sar edi, 1
or eax, ecx
jge 0x47196d
push ebx
mov ecx, esi
call fcn.0042052a
mov eax, dword [esi]
mov ecx, dword [eax - 8]
lea esi, [ebx + ebx]
push esi
cmp edi, dword [ebp - 0x264]
ja 0x47198d
lea edx, [eax + edi*2]
push edx
add ecx, ecx
push ecx
push eax
call fcn.004cc86f
jmp 0x47199c
push str.DetermineAssembliesToCreate_SxS_:__s_requires_products_assembly___s_._This_assembly_has__d_redirects:
lea edx, [ecx + ecx]
push edx
push eax
call fcn.004cc7a1
add esp, 0x10
test ebx, ebx
jl 0x47233d
mov ecx, dword [ebp - 0x274]
mov eax, dword [ecx]
cmp ebx, dword [eax - 8]
jg 0x47233d
mov dword [eax - 0xc], ebx
mov eax, dword [ecx]
xor ecx, ecx
mov word [esi + eax], cx
push ecx
mov byte [ebp - 4], 0xc
mov esi, esp
mov dword [ebp - 0x280], esp
mov dword [ebp - 0x280], esi
call fcn.004bdbe3
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x470b10
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esi], eax
mov eax, str.General
shr eax, 0x10
mov byte [ebp - 4], 0xd
mov dword [ebp - 0x268], eax
test eax, eax
jne 0x471b53
mov ecx, str.General
movzx ebx, cx
push ebx
call fcn.004c5d7f
mov edi, eax
mov dword [ebp - 0x26c], edi
test edi, edi
je 0x471c4f
mov edx, ebx
shr edx, 4
inc edx
movzx eax, dx
push 6
push eax
push edi
call dword [sym.imp.KERNEL32.dll_FindResourceW]
mov dword [ebp - 0x264], eax
test eax, eax
je 0x471c4f
push eax
push edi
call dword [sym.imp.KERNEL32.dll_LoadResource]
test eax, eax
je 0x471c4f
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov edi, eax
test edi, edi
je 0x471c4f
mov ecx, dword [ebp - 0x264]
mov edx, dword [ebp - 0x26c]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_SizeofResource]
add eax, edi
and ebx, 0xf
jbe 0x471aa4
lea ecx, [ecx]
cmp edi, eax
jae 0x471c4f
sub ebx, 1
movzx ecx, word [edi]
lea edi, [edi + ecx*2 + 2]
jne 0x471a90
cmp edi, eax
jae 0x471c4f
movzx eax, word [edi]
test ax, ax
je 0x471c4f
movzx ebx, ax
mov eax, dword [esi]
sub eax, 0x10
mov ecx, 1
sub ecx, dword [eax + 0xc]
mov eax, dword [eax + 8]
sub eax, ebx
or eax, ecx
jge 0x471ad9
push ebx
mov ecx, esi
call fcn.0042052a
movzx eax, word [edi]
mov edx, dword [esi]
add edi, 2
mov dword [ebp - 0x264], edx
cmp eax, 0xffffffff
jne 0x471af6
push edi
call fcn.004ccd1a
add esp, 4
inc eax
add eax, eax
push eax
lea ecx, [ebx + ebx]
push edi
push ecx
mov dword [ebp - 0x26c], ecx
mov ecx, dword [ebp - 0x264]
push ecx
call fcn.004cc7a1
add esp, 0x10
cmp eax, 0x50
ja case.0x471fc9.1
movzx edx, byte [eax + 0x4725e0]
jmp dword [edx*4 + 0x4725d0]
test ebx, ebx
jl 0x47233d
mov eax, dword [esi]
cmp ebx, dword [eax - 8]
jg 0x47233d
mov edx, dword [ebp - 0x26c]
mov dword [eax - 0xc], ebx
mov eax, dword [esi]
xor ecx, ecx
mov word [edx + eax], cx
jmp 0x471c4f
push str.General
call fcn.004ccd1a
mov ebx, eax
add esp, 4
test ebx, ebx
jne 0x471bc0
mov ecx, dword [esi]
mov edi, dword [ecx - 0x10]
cmp dword [ecx - 0xc], ebx
lea eax, [ecx - 0x10]
je 0x471c4f
cmp dword [eax + 0xc], ebx
lea edx, [eax + 0xc]
jge 0x471b97
cmp dword [ecx - 8], ebx
jl 0x47233d
mov dword [ecx - 0xc], ebx
mov eax, dword [esi]
xor ecx, ecx
mov word [eax], cx
jmp 0x471c4f
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x471bad
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [edi]
mov eax, dword [edx + 0xc]
mov ecx, edi
call eax
add eax, 0x10
mov dword [esi], eax
jmp 0x471c4f
mov eax, dword [esi]
mov ecx, dword [eax - 0xc]
mov dword [ebp - 0x264], ecx
mov edi, str.General
sub edi, eax
mov ecx, 1
sub ecx, dword [eax - 4]
mov eax, dword [eax - 8]
sub eax, ebx
sar edi, 1
or eax, ecx
jge 0x471bed
push ebx
mov ecx, esi
call fcn.0042052a
mov eax, dword [esi]
cmp edi, dword [ebp - 0x264]
ja 0x471c19
mov edx, dword [eax - 8]
lea ecx, [ebx + ebx]
push ecx
mov dword [ebp - 0x264], ecx
lea ecx, [eax + edi*2]
push ecx
add edx, edx
push edx
push eax
call fcn.004cc86f
mov edi, dword [ebp - 0x264]
jmp 0x471c2e
mov ecx, dword [eax - 8]
lea edi, [ebx + ebx]
push edi
push str.General
add ecx, ecx
push ecx
push eax
call fcn.004cc7a1
add esp, 0x10
test ebx, ebx
jl 0x47233d
mov eax, dword [esi]
cmp ebx, dword [eax - 8]
jg 0x47233d
mov dword [eax - 0xc], ebx
mov edx, dword [esi]
xor eax, eax
mov word [edi + edx], ax
mov byte [ebp - 4], 0xc
push 1
mov byte [ebp - 4], 0xa
call fcn.0047c9c0
mov eax, dword [ebp - 0x27c]
add esp, 0x18
test eax, eax
jne 0x471e7a
call fcn.004cce91
xor eax, eax
mov esi, dword [ebp - 0x278]
cmp esi, dword [eax + 0x10]
jb 0x471c86
call fcn.004cce91
mov esi, dword [esi]
mov edi, dword [esi + 0x64]
add esi, 0x58
cmp edi, dword [esi + 0x10]
jbe 0x471c98
call fcn.004cce91
mov ebx, dword [esi]
mov dword [ebp - 0x298], ebx
mov dword [ebp - 0x294], edi
mov eax, dword [ebp - 0x27c]
test eax, eax
jne 0x471e81
call fcn.004cce91
xor eax, eax
mov ecx, dword [ebp - 0x278]
cmp ecx, dword [eax + 0x10]
jb 0x471ccb
call fcn.004cce91
mov edx, dword [ebp - 0x278]
mov edi, dword [edx]
mov esi, dword [edi + 0x68]
add edi, 0x58
cmp dword [edi + 0xc], esi
jbe 0x471ce3
call fcn.004cce91
mov edi, dword [edi]
test ebx, ebx
je 0x471ced
cmp ebx, edi
je 0x471cf2
call fcn.004cce91
cmp dword [ebp - 0x294], esi
je 0x472059
test ebx, ebx
jne 0x471e88
call fcn.004cce91
xor eax, eax
mov ecx, dword [ebp - 0x294]
cmp ecx, dword [eax + 0x10]
jb 0x471d1d
call fcn.004cce91
mov edx, dword [ebp - 0x294]
mov eax, dword [edx]
push eax
push ecx
mov esi, esp
mov dword [ebp - 0x290], esp
mov dword [ebp - 0x274], esi
call fcn.004bdbe3
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x470b10
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esi], eax
mov ecx, str.___bindingRedirect:__s
mov byte [ebp - 4], 0xe
test ecx, 0xffff0000
jne 0x471eb5
mov edx, ecx
movzx ebx, dx
push ebx
call fcn.004c5d7f
mov esi, eax
test esi, esi
je 0x471ecf
mov eax, ebx
shr eax, 4
inc eax
movzx ecx, ax
push 6
push ecx
push esi
call dword [sym.imp.KERNEL32.dll_FindResourceW]
mov dword [ebp - 0x26c], eax
test eax, eax
je 0x471ecf
mov edx, eax
push edx
push esi
call dword [sym.imp.KERNEL32.dll_LoadResource]
test eax, eax
je 0x471ecf
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov edi, eax
test edi, edi
je 0x471ecf
mov eax, dword [ebp - 0x26c]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_SizeofResource]
add eax, edi
and ebx, 0xf
jbe 0x471df4
lea ebx, [ebx]
cmp edi, eax
jae 0x471ecf
sub ebx, 1
movzx ecx, word [edi]
lea edi, [edi + ecx*2 + 2]
jne 0x471de0
cmp edi, eax
jae 0x471ecf
movzx eax, word [edi]
test ax, ax
je 0x471ecf
mov esi, dword [ebp - 0x274]
movzx ebx, ax
mov eax, dword [esi]
sub eax, 0x10
mov ecx, 1
sub ecx, dword [eax + 0xc]
mov eax, dword [eax + 8]
sub eax, ebx
or eax, ecx
jge 0x471e2f
push ebx
mov ecx, esi
call fcn.0042052a
movzx eax, word [edi]
mov edx, dword [esi]
add edi, 2
mov dword [ebp - 0x264], edx
cmp eax, 0xffffffff
jne 0x471e4c
push edi
call fcn.004ccd1a
add esp, 4
inc eax
mov ecx, dword [ebp - 0x264]
add eax, eax
push eax
push edi
lea esi, [ebx + ebx]
push esi
push ecx
call fcn.004cc7a1
add esp, 0x10
cmp eax, 0x50
ja case.0x471fc9.1
movzx edx, byte [eax + 0x472644]
jmp dword [edx*4 + 0x472634]
mov eax, dword [eax]
jmp 0x471c76
mov eax, dword [eax]
jmp 0x471cbb
mov eax, dword [ebx]
jmp 0x471d0d
test ebx, ebx
jl 0x47233d
mov ecx, dword [ebp - 0x274]
mov eax, dword [ecx]
cmp ebx, dword [eax - 8]
jg 0x47233d
mov dword [eax - 0xc], ebx
mov eax, dword [ecx]
xor ecx, ecx
mov word [esi + eax], cx
jmp 0x471ecf
push str.___bindingRedirect:__s
call fcn.004ccd1a
add esp, 4
push eax
push str.___bindingRedirect:__s
mov ecx, esi
call fcn.00423404
push ecx
mov byte [ebp - 4], 0xf
mov esi, esp
mov dword [ebp - 0x280], esp
mov dword [ebp - 0x280], esi
call fcn.004bdbe3
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x470b10
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esi], eax
mov byte [ebp - 4], 0x10
cmp dword [ebp - 0x268], 0
jne 0x471ff6
mov ecx, str.General
movzx edi, cx
push edi
call fcn.004c5d7f
mov ebx, eax
test ebx, ebx
je 0x472010
mov edx, edi
shr edx, 4
inc edx
movzx eax, dx
push 6
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_FindResourceW]
test eax, eax
je 0x472010
push edi
push eax
push ebx
call fcn.00420713
mov ebx, eax
add esp, 0xc
test ebx, ebx
je 0x472010
mov eax, dword [esi]
movzx edi, word [ebx]
sub eax, 0x10
mov ecx, 1
sub ecx, dword [eax + 0xc]
mov eax, dword [eax + 8]
sub eax, edi
or eax, ecx
jge 0x471f7e
push edi
mov ecx, esi
call fcn.0042052a
movzx eax, word [ebx]
mov ecx, dword [esi]
add ebx, 2
mov dword [ebp - 0x264], ecx
cmp eax, 0xffffffff
jne 0x471f9b
push ebx
call fcn.004ccd1a
add esp, 4
inc eax
lea edx, [eax + eax]
mov eax, dword [ebp - 0x264]
push edx
lea ecx, [edi + edi]
push ebx
push ecx
push eax
mov dword [ebp - 0x26c], ecx
call fcn.004cc7a1
add esp, 0x10
cmp eax, 0x50
ja case.0x471fc9.1
movzx ecx, byte [eax + 0x4726a8]
jmp dword [ecx*4 + 0x472698]
test edi, edi
jl 0x47233d
mov eax, dword [esi]
cmp edi, dword [eax - 8]
jg 0x47233d
mov ecx, dword [ebp - 0x26c]
mov dword [eax - 0xc], edi
mov edx, dword [esi]
xor eax, eax
mov word [ecx + edx], ax
jmp 0x472010
push str.General
call fcn.004ccd1a
add esp, 4
push eax
push str.General
mov ecx, esi
call fcn.00423404
mov byte [ebp - 4], 0xf
push 1
mov byte [ebp - 4], 0xa
call fcn.0047c9c0
mov eax, dword [ebp - 0x298]
add esp, 0x10
test eax, eax
jne 0x472055
call fcn.004cce91
xor eax, eax
mov edx, dword [ebp - 0x294]
cmp edx, dword [eax + 0x10]
jb 0x472043
call fcn.004cce91
add dword [ebp - 0x294], 4
mov ebx, dword [ebp - 0x298]
jmp 0x471ca6
mov eax, dword [eax]
jmp 0x472033
mov esi, dword [ebp - 0x27c]
test esi, esi
jne 0x4721e3
call fcn.004cce91
xor eax, eax
mov ecx, dword [ebp - 0x278]
cmp ecx, dword [eax + 0x10]
jb 0x47207e
call fcn.004cce91
mov ebx, dword [ebp - 0x278]
mov edi, dword [ebp - 0x2ac]
call fcn.00480650
mov dword [ebp - 0x264], 1
test esi, esi
jne 0x4721ea
call fcn.004cce91
xor eax, eax
cmp ebx, dword [eax + 0x10]
jb 0x4720b2
call fcn.004cce91
mov edx, dword [ebx]
cmp dword [edx + 0x24], 2
jne 0x4722b4
test esi, esi
jne 0x4721f1
call fcn.004cce91
xor eax, eax
cmp ebx, dword [eax + 0x10]
jb 0x4720d7
call fcn.004cce91
mov eax, dword [ebx]
mov ecx, dword [eax + 8]
push ecx
push ecx
mov edi, esp
mov dword [ebp - 0x290], esp
mov dword [ebp - 0x280], edi
call fcn.004bdbe3
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x470b10
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [edi], eax
mov ecx, str.DetermineAssembliesToCreate_SxS_:_turning_assembly__s_from_gatDeferredCandidate_to_gatDeferred
mov byte [ebp - 4], 0x11
test ecx, 0xffff0000
jne 0x4721f8
mov edx, ecx
movzx esi, dx
push esi
call fcn.004c5d7f
test eax, eax
je 0x47213b
push esi
push eax
mov ecx, edi
call fcn.00422eb3
mov esi, dword [ebp - 0x27c]
push ecx
mov bl, 0x12
mov byte [ebp - 4], bl
mov edi, esp
mov dword [ebp - 0x280], esp
mov dword [ebp - 0x280], edi
call fcn.004bdbe3
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x470b10
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [edi], eax
mov byte [ebp - 4], 0x13
cmp dword [ebp - 0x268], 0
jne 0x472217
mov ecx, str.General
movzx esi, cx
push esi
call fcn.004c5d7f
test eax, eax
je 0x4721a3
push esi
push eax
mov ecx, edi
call fcn.00422eb3
mov esi, dword [ebp - 0x27c]
mov byte [ebp - 4], bl
push 1
mov byte [ebp - 4], 0xa
call fcn.0047c9c0
add esp, 0x10
test esi, esi
jne 0x472236
call fcn.004cce91
xor eax, eax
mov esi, dword [ebp - 0x278]
cmp esi, dword [eax + 0x10]
jb 0x4721d5
call fcn.004cce91
mov edx, dword [esi]
mov dword [edx + 0x24], 1
jmp 0x4722b4
mov eax, dword [esi]
jmp 0x47206e
mov eax, dword [esi]
jmp 0x4720a8
mov eax, dword [esi]
jmp 0x4720cd
push str.DetermineAssembliesToCreate_SxS_:_turning_assembly__s_from_gatDeferredCandidate_to_gatDeferred
call fcn.004ccd1a
add esp, 4
push eax
push str.DetermineAssembliesToCreate_SxS_:_turning_assembly__s_from_gatDeferredCandidate_to_gatDeferred
mov ecx, edi
call fcn.00423404
jmp 0x472141
push str.General
call fcn.004ccd1a
add esp, 4
push eax
push str.General
mov ecx, edi
call fcn.00423404
jmp 0x4721a9
mov eax, dword [esi]
jmp 0x4721c5
mov byte [ebp - 4], 0xa
mov eax, dword [ebp - 0x270]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x472260
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x288]
mov ecx, dword [ebp - 0x2c8]
push ecx
test eax, eax
jne 0x472323
call fcn.004cce91
xor eax, eax
mov edi, dword [ebp - 0x284]
cmp edi, dword [eax + 0x10]
jb 0x47228c
call fcn.004cce91
mov eax, dword [edi + 8]
push ecx
sub eax, 0x10
mov dword [ebp - 0x290], esp
mov esi, esp
push eax
call fcn.00423475
mov ecx, dword [ebp - 0x28c]
add eax, 0x10
add esp, 4
mov dword [esi], eax
call fcn.0046fe40
lea edx, [ebp - 0x310]
push edx
mov byte [ebp - 4], 9
call fcn.00473100
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x29c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4722ea
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x288]
test eax, eax
jne 0x47232a
call fcn.004cce91
xor eax, eax
mov ecx, dword [ebp - 0x284]
cmp ecx, dword [eax + 0x10]
jb 0x47230b
call fcn.004cce91
add dword [ebp - 0x284], 0x74
mov ebx, dword [ebp - 0x2d0]
mov edi, dword [ebp - 0x288]
jmp 0x470fc7
mov eax, dword [eax]
jmp 0x47227c
mov eax, dword [eax]
jmp 0x4722fb
call fcn.00420595
call fcn.004be14b
call fcn.004be183
push 0x80070057
call fcn.00420000
push 4
call fcn.004bd4f2
add esp, 4
cmp eax, esi
je 0x47235f
lea edx, [ebp - 0x2c4]
mov dword [eax], edx
jmp 0x472361
xor eax, eax
mov dword [ebp - 0x2c4], eax
mov dword [ebp - 0x2b8], esi
mov dword [ebp - 0x2b4], esi
mov dword [ebp - 0x2b0], esi
lea eax, [ebp - 0x2c4]
push eax
mov byte [ebp - 4], 0x22
mov eax, dword [ebp + 0xc]
push ecx
add eax, 0xfffffff0
mov dword [ebp - 0x290], esp
mov edi, esp
push eax
call fcn.00423475
add eax, 0x10
add esp, 4
mov dword [edi], eax
call fcn.0049b420
add esp, 8
cmp eax, esi
je 0x472462
mov edi, dword [ebp - 0x2b8]
cmp edi, dword [ebp - 0x2b4]
jbe 0x4723c4
call fcn.004cce91
mov ebx, dword [ebp - 0x2c4]
lea ebx, [ebx]
mov esi, dword [ebp - 0x2b4]
cmp dword [ebp - 0x2b8], esi
jbe 0x4723e3
call fcn.004cce91
test ebx, ebx
je 0x4723ef
cmp ebx, dword [ebp - 0x2c4]
je 0x4723f4
call fcn.004cce91
cmp edi, esi
je 0x472460
mov ecx, dword [ebp - 0x2c8]
push ecx
test ebx, ebx
jne 0x472458
call fcn.004cce91
xor eax, eax
cmp edi, dword [eax + 0x10]
jb 0x472414
call fcn.004cce91
mov eax, dword [edi]
push ecx
sub eax, 0x10
mov dword [ebp - 0x290], esp
mov esi, esp
push eax
call fcn.00423475
mov ecx, dword [ebp - 0x28c]
add eax, 0x10
add esp, 4
mov dword [esi], eax
call fcn.0046fe40
test ebx, ebx
jne 0x47245c
call fcn.004cce91
xor eax, eax
cmp edi, dword [eax + 0x10]
jb 0x472450
call fcn.004cce91
add edi, 4
jmp 0x4723d0
mov eax, dword [ebx]
jmp 0x47240a
mov eax, dword [ebx]
jmp 0x472446
xor esi, esi
mov byte [ebp - 4], 0x23
mov eax, dword [ebp - 0x2b8]
cmp eax, esi
je 0x4724b6
mov edi, dword [ebp - 0x2b4]
mov esi, eax
cmp eax, edi
je 0x4724a5
lea esp, [esp]
mov eax, dword [esi]
sub eax, 0x10
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x47249e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
add esi, 4
cmp esi, edi
jne 0x472480
mov ecx, dword [ebp - 0x2b8]
push ecx
call fcn.004bd521
add esp, 4
xor esi, esi
mov byte [ebp - 4], 4
mov edx, dword [ebp - 0x2c4]
push edx
mov dword [ebp - 0x2b8], esi
mov dword [ebp - 0x2b4], esi
mov dword [ebp - 0x2b0], esi
call fcn.004bd521
add esp, 4
lea eax, [ebp - 0x2f8]
push eax
mov byte [ebp - 4], 3
call fcn.00473100
lea ecx, [ebp - 0x2e0]
push ecx
mov byte [ebp - 4], 2
call fcn.00472f70
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x2a0]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x472521
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [ebp - 4], 0xffffffff
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 0x472547
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x264]
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.004cc3b2
mov esp, ebp
pop ebp
ret 8