Function at 0x41b570
Capabilities:
Identify system language via api

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x54c290
mov eax, dword fs:[0]
push eax
sub esp, 0x84
push ebx
push esi
push edi
mov eax, dword [0x60c9c8]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
xor ebx, ebx
push 0x55f1ce
lea ecx, [ebp - 0x5c]
mov dword [ebp - 0x2c], ebx
call fcn.0040dc70
push 0x55f1ce
lea ecx, [ebp - 0x28]
mov dword [ebp - 4], ebx
mov dword [ebp - 0x60], ebx
mov dword [ebp - 0x54], ebx
call fcn.0040dc70
push 0x55f1ce
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 1
call fcn.0040dc70
push 0x55f1ce
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 2
call fcn.0040dc70
push 0x55f1ce
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 3
call fcn.0040dc70
push 0x55f1ce
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 4
call fcn.0040dc70
push 0x55f1ce
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 5
call fcn.0040dc70
push 0x55f1ce
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 6
call fcn.0040dc70
push 0x55f1ce
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 7
call fcn.0040dc70
push 0x55f1ce
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 8
call fcn.0040dc70
lea esi, [edi + 0x158]
lea eax, [ebp - 0x44]
push eax
mov ecx, esi
mov byte [ebp - 4], 9
mov dword [ebp - 0x18], esi
call fcn.0040deb0
push eax
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 0xa
call fcn.004034d0
mov eax, dword [ebp - 0x44]
add eax, 0xfffffff0
mov byte [ebp - 4], 9
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41b695
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [ebp - 0x44]
push ecx
mov ecx, esi
call fcn.0040e030
push eax
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 0xb
call fcn.004034d0
mov eax, dword [ebp - 0x44]
add eax, 0xfffffff0
mov byte [ebp - 4], 9
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41b6d0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [ebp - 0x44]
push ecx
mov ecx, esi
call fcn.004162d0
push eax
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0xc
call fcn.004034d0
mov eax, dword [ebp - 0x44]
add eax, 0xfffffff0
mov byte [ebp - 4], 9
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41b70b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, esi
call fcn.0040ad80
mov ecx, 1
mov dword [ebp - 0x40], ecx
cmp eax, ecx
jne 0x41b723
mov dword [ebp - 0x4c], ecx
jmp 0x41b730
mov dword [ebp - 0x4c], ebx
cmp eax, 2
je 0x41b730
mov dword [ebp - 0x40], ebx
mov edi, edi
mov ecx, dword [edi + 0x12c]
test ecx, ecx
je 0x41b74d
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push 1
call eax
mov dword [edi + 0x12c], 0
push 0xb4
call fcn.00432a1f
add esp, 4
mov dword [ebp - 0x10], eax
mov byte [ebp - 4], 0xd
test eax, eax
je 0x41b770
push 0
mov ecx, eax
call fcn.0042bce0
jmp 0x41b772
xor eax, eax
movzx ecx, word [edi + 0xe4b8]
mov edx, dword [edi + 0xda0c]
mov esi, dword [ebp - 0x18]
push ecx
push edx
push esi
mov ecx, eax
mov byte [ebp - 4], 9
mov dword [edi + 0x12c], eax
mov dword [ebp - 0x24], eax
call fcn.0042b7b0
mov ecx, dword [edi + 0x12c]
mov eax, dword [ecx]
mov edx, dword [eax + 0x170]
call edx
cmp eax, 2
je 0x41cd1c
cmp eax, 0x7d5
jne 0x41d04c
lea ecx, [ecx]
mov edx, dword [edi + 0xd87c]
test edx, edx
jne 0x41b7ce
xor eax, eax
jmp 0x41b7e2
mov eax, edx
lea esi, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x41b7d3
sub eax, esi
sar eax, 1
push eax
push edx
lea ecx, [ebp - 0x5c]
call fcn.00403290
cmp dword [ebp - 0x40], 0
je 0x41bfe0
cmp dword [edi + 0x150], 0
jne 0x41b831
push 0x220
call fcn.00432a1f
add esp, 4
mov dword [ebp - 0x10], eax
mov byte [ebp - 4], 0x10
test eax, eax
je 0x41b822
push 0
mov ecx, eax
call fcn.00429910
jmp 0x41b824
xor eax, eax
mov byte [ebp - 4], 9
mov dword [edi + 0x150], eax
mov dword [ebp - 0x24], eax
mov esi, dword [ebp - 0x18]
mov ecx, esi
call fcn.0040b620
push eax
mov eax, dword [edi + 0xda0c]
push eax
call fcn.004024c0
add esp, 8
lea ecx, [ebp - 0x7c]
push ecx
mov ecx, esi
mov dword [ebp - 0x60], eax
call fcn.004162a0
mov eax, dword [eax]
mov ebx, dword [ebp - 0x28]
lea esi, [eax - 0x10]
add ebx, 0xfffffff0
mov byte [ebp - 4], 0x11
cmp esi, ebx
je 0x41b916
cmp dword [ebx + 0xc], 0
jl 0x41b909
mov ecx, dword [esi]
cmp ecx, dword [ebx]
jne 0x41b909
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
cmp dword [esi + 0xc], 0
lea ecx, [esi + 0xc]
jl 0x41b8a6
cmp eax, dword [esi]
jne 0x41b8a6
mov dword [ebp - 0x14], esi
mov edx, 1
lock xadd dword [ecx], edx
jmp 0x41b8e5
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov dword [ebp - 0x14], eax
test eax, eax
je 0x41d1ae
mov eax, dword [esi + 4]
mov ecx, dword [ebp - 0x14]
mov dword [ecx + 4], eax
mov eax, dword [esi + 4]
lea edx, [eax + eax + 2]
push edx
add esi, 0x10
push esi
lea eax, [eax + eax + 2]
push eax
add ecx, 0x10
push ecx
call fcn.00532e6b
add esp, 0x10
lea eax, [ebx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x41b8fe
mov ecx, dword [ebx]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push ebx
call eax
mov ecx, dword [ebp - 0x14]
add ecx, 0x10
mov dword [ebp - 0x28], ecx
jmp 0x41b916
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [ebp - 0x28]
call fcn.00403290
mov eax, dword [ebp - 0x7c]
add eax, 0xfffffff0
mov byte [ebp - 4], 9
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41b939
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov esi, dword [ebp - 0x28]
push ecx
mov ecx, dword [esi - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x14], esp
call eax
cmp dword [esi - 4], 0
lea ecx, [esi - 4]
jl 0x41b969
cmp eax, dword [esi - 0x10]
jne 0x41b969
lea ebx, [esi - 0x10]
mov edx, 1
lock xadd dword [ecx], edx
jmp 0x41b9a1
mov ecx, dword [esi - 0xc]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov ebx, eax
test ebx, ebx
je 0x41d1ae
mov eax, dword [esi - 0xc]
mov dword [ebx + 4], eax
mov eax, dword [esi - 0xc]
lea ecx, [eax + eax + 2]
push ecx
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [ebx + 0x10]
push eax
call fcn.00532e6b
add esp, 0x10
mov ecx, dword [ebp - 0x14]
add ebx, 0x10
mov dword [ecx], ebx
call fcn.00416360
mov ecx, dword [edi + 0x150]
mov dword [ecx + 0x94], eax
mov eax, dword [edi + 0x150]
add esp, 4
cmp dword [eax + 0x94], 0xffffffff
jne 0x41ba8e
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
movzx eax, ax
mov ecx, eax
lea edx, [ebp - 0x28]
push edx
shr ecx, 0xa
push ecx
mov ecx, dword [ebp - 0x18]
and eax, 0x3ff
push eax
call fcn.0040eeb0
mov esi, dword [ebp - 0x28]
push ecx
mov ecx, dword [esi - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x14], esp
call eax
cmp dword [esi - 4], 0
lea edx, [esi - 4]
jl 0x41ba21
cmp eax, dword [esi - 0x10]
jne 0x41ba21
lea ebx, [esi - 0x10]
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x41ba59
mov ecx, dword [esi - 0xc]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov ebx, eax
test ebx, ebx
je 0x41d1ae
mov eax, dword [esi - 0xc]
mov dword [ebx + 4], eax
mov eax, dword [esi - 0xc]
lea ecx, [eax + eax + 2]
push ecx
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [ebx + 0x10]
push eax
call fcn.00532e6b
add esp, 0x10
mov ecx, dword [ebp - 0x14]
add ebx, 0x10
mov dword [ecx], ebx
call fcn.00416360
mov ecx, dword [edi + 0x150]
mov dword [ecx + 0x94], eax
mov eax, dword [edi + 0x150]
add esp, 4
cmp dword [eax + 0x94], 0xffffffff
jne 0x41ba8e
mov dword [eax + 0x94], 0
mov edx, dword [ebp - 0x60]
mov esi, dword [ebp - 0x5c]
push edx
push ecx
mov ecx, dword [esi - 0x10]
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x14], esp
call edx
cmp dword [esi - 4], 0
lea ecx, [esi - 4]
jl 0x41bac2
cmp eax, dword [esi - 0x10]
jne 0x41bac2
lea ebx, [esi - 0x10]
mov eax, 1
lock xadd dword [ecx], eax
jmp 0x41bafa
mov ecx, dword [esi - 0xc]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov ebx, eax
test ebx, ebx
je 0x41d1ae
mov eax, dword [esi - 0xc]
mov dword [ebx + 4], eax
mov eax, dword [esi - 0xc]
lea ecx, [eax + eax + 2]
push ecx
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [ebx + 0x10]
push eax
call fcn.00532e6b
add esp, 0x10
mov ecx, dword [ebp - 0x14]
add ebx, 0x10
mov dword [ecx], ebx
mov esi, dword [ebp - 0x20]
push ecx
mov ecx, dword [esi - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
mov dword [ebp - 0x14], esp
mov byte [ebp - 4], 0x12
mov dword [ebp - 0x14], esp
call eax
cmp dword [esi - 4], 0
lea edx, [esi - 4]
jl 0x41bb36
cmp eax, dword [esi - 0x10]
jne 0x41bb36
lea ebx, [esi - 0x10]
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x41bb6e
mov ecx, dword [esi - 0xc]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov ebx, eax
test ebx, ebx
je 0x41d1ae
mov eax, dword [esi - 0xc]
mov dword [ebx + 4], eax
mov eax, dword [esi - 0xc]
lea ecx, [eax + eax + 2]
push ecx
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [ebx + 0x10]
push eax
call fcn.00532e6b
add esp, 0x10
mov ecx, dword [ebp - 0x14]
add ebx, 0x10
mov dword [ecx], ebx
mov ebx, dword [ebp - 0x18]
mov ecx, dword [edi + 0x150]
push ebx
mov byte [ebp - 4], 9
call fcn.004296b0
mov ecx, dword [edi + 0x150]
mov edx, dword [ecx]
mov eax, dword [edx + 0x170]
call eax
cmp eax, 0x7d6
je 0x41cfaf
cmp eax, 2
je 0x41cd1c
mov eax, dword [edi + 0x150]
mov ecx, dword [eax + 0x98]
mov eax, dword [ebp - 0x60]
mov esi, dword [eax]
mov edx, dword [eax + 4]
sub edx, esi
mov eax, 0x4ec4ec4f
imul edx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, ecx
jbe 0x41d1b3
imul ecx, ecx, 0xd0
mov edx, dword [ecx + esi + 4]
test edx, edx
jne 0x41bbee
xor eax, eax
jmp 0x41bc02
mov eax, edx
lea esi, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x41bbf3
sub eax, esi
sar eax, 1
push eax
push edx
lea ecx, [ebp - 0x28]
call fcn.00403290
cmp dword [edi + 0x154], 0
jne 0x41bc47
push 0x134
call fcn.00432a1f
add esp, 4
mov dword [ebp - 0x10], eax
mov byte [ebp - 4], 0x13
test eax, eax
je 0x41bc38
push 0
mov ecx, eax
call fcn.004037c0
jmp 0x41bc3a
xor eax, eax
mov byte [ebp - 4], 9
mov dword [edi + 0x154], eax
mov dword [ebp - 0x24], eax
mov eax, dword [edi + 0x150]
mov ecx, dword [eax + 0x98]
mov edx, dword [edi + 0xda0c]
push ecx
push edx
call fcn.00402990
mov ecx, dword [edi + 0x154]
mov dword [ebp - 0x54], eax
mov eax, dword [edi + 0x150]
mov eax, dword [eax + 0x98]
mov dword [ecx + 0xa8], eax
add esp, 8
lea ecx, [ebp - 0x90]
push ecx
mov ecx, ebx
call fcn.004162d0
mov eax, dword [eax]
mov ebx, dword [ebp - 0x1c]
lea esi, [eax - 0x10]
add ebx, 0xfffffff0
mov byte [ebp - 4], 0x14
cmp esi, ebx
je 0x41bd49
cmp dword [ebx + 0xc], 0
jl 0x41bd3c
mov ecx, dword [esi]
cmp ecx, dword [ebx]
jne 0x41bd3c
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
cmp dword [esi + 0xc], 0
lea ecx, [esi + 0xc]
jl 0x41bcd9
cmp eax, dword [esi]
jne 0x41bcd9
mov dword [ebp - 0x14], esi
mov edx, 1
lock xadd dword [ecx], edx
jmp 0x41bd18
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov dword [ebp - 0x14], eax
test eax, eax
je 0x41d1ae
mov eax, dword [esi + 4]
mov ecx, dword [ebp - 0x14]
mov dword [ecx + 4], eax
mov eax, dword [esi + 4]
lea edx, [eax + eax + 2]
push edx
add esi, 0x10
push esi
lea eax, [eax + eax + 2]
push eax
add ecx, 0x10
push ecx
call fcn.00532e6b
add esp, 0x10
lea eax, [ebx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x41bd31
mov ecx, dword [ebx]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push ebx
call eax
mov ecx, dword [ebp - 0x14]
add ecx, 0x10
mov dword [ebp - 0x1c], ecx
jmp 0x41bd49
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [ebp - 0x1c]
call fcn.00403290
mov eax, dword [ebp - 0x90]
add eax, 0xfffffff0
mov byte [ebp - 4], 9
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41bd6f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [edi + 0x154]
mov dword [eax + 0x98], 0xffffffff
mov eax, dword [edi + 0x150]
cmp dword [eax + 0x98], 0
jl 0x41bf69
mov esi, dword [ebp - 0x1c]
push ecx
mov ecx, dword [esi - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x14], esp
call eax
cmp dword [esi - 4], 0
lea ecx, [esi - 4]
jl 0x41bdc2
cmp eax, dword [esi - 0x10]
jne 0x41bdc2
lea ebx, [esi - 0x10]
mov edx, 1
lock xadd dword [ecx], edx
jmp 0x41bdfa
mov ecx, dword [esi - 0xc]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov ebx, eax
test ebx, ebx
je 0x41d1ae
mov eax, dword [esi - 0xc]
mov dword [ebx + 4], eax
mov eax, dword [esi - 0xc]
lea ecx, [eax + eax + 2]
push ecx
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [ebx + 0x10]
push eax
call fcn.00532e6b
add esp, 0x10
mov ecx, dword [ebp - 0x14]
add ebx, 0x10
mov dword [ecx], ebx
mov eax, dword [edi + 0x150]
mov edx, dword [eax + 0x98]
push edx
call fcn.00416160
mov ecx, dword [edi + 0x154]
mov dword [ecx + 0x98], eax
mov eax, dword [edi + 0x154]
add esp, 8
cmp dword [eax + 0x98], 0xffffffff
jne 0x41bf69
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLCID]
mov esi, dword [ebp - 0x28]
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x1c]
push eax
push ecx
mov ecx, dword [esi - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
mov dword [ebp - 0x14], esp
mov dword [ebp - 0x14], esp
call eax
cmp dword [esi - 4], 0
lea ecx, [esi - 4]
jl 0x41be73
cmp eax, dword [esi - 0x10]
jne 0x41be73
lea ebx, [esi - 0x10]
mov edx, 1
lock xadd dword [ecx], edx
jmp 0x41beab
mov ecx, dword [esi - 0xc]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov ebx, eax
test ebx, ebx
je 0x41d1ae
mov eax, dword [esi - 0xc]
mov dword [ebx + 4], eax
mov eax, dword [esi - 0xc]
lea ecx, [eax + eax + 2]
push ecx
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [ebx + 0x10]
push eax
call fcn.00532e6b
add esp, 0x10
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x10]
add ebx, 0x10
mov dword [ecx], ebx
mov ecx, dword [ebp - 0x18]
push edx
call fcn.0040f5f0
mov esi, dword [ebp - 0x1c]
push ecx
mov ecx, dword [esi - 0x10]
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x10], esp
call edx
cmp dword [esi - 4], 0
lea edx, [esi - 4]
jl 0x41beef
cmp eax, dword [esi - 0x10]
jne 0x41beef
lea ebx, [esi - 0x10]
mov eax, 1
lock xadd dword [edx], eax
jmp 0x41bf27
mov ecx, dword [esi - 0xc]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov ebx, eax
test ebx, ebx
je 0x41d1ae
mov eax, dword [esi - 0xc]
mov dword [ebx + 4], eax
mov eax, dword [esi - 0xc]
lea ecx, [eax + eax + 2]
push ecx
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [ebx + 0x10]
push eax
call fcn.00532e6b
add esp, 0x10
mov ecx, dword [ebp - 0x10]
add ebx, 0x10
mov dword [ecx], ebx
mov eax, dword [edi + 0x150]
mov edx, dword [eax + 0x98]
push edx
call fcn.00416160
mov ecx, dword [edi + 0x154]
mov dword [ecx + 0x98], eax
mov eax, dword [edi + 0x154]
add esp, 8
cmp dword [eax + 0x98], 0xffffffff
jne 0x41bf69
mov dword [eax + 0x98], 0
mov eax, dword [edi + 0x154]
mov dword [eax + 0xa4], 1
mov eax, dword [edi + 0x154]
mov ecx, dword [edi + 0x150]
mov edx, dword [eax + 0xa8]
cmp edx, dword [ecx + 0x98]
je 0x41bfe0
xor ecx, ecx
mov dword [eax + 0xa4], ecx
mov eax, dword [edi + 0x154]
mov dword [eax + 0x9c], ecx
mov eax, dword [edi + 0x150]
mov eax, dword [eax + 0x98]
mov ecx, dword [edi + 0xda0c]
push eax
push ecx
call fcn.00402990
mov ecx, dword [edi + 0x154]
mov dword [ebp - 0x54], eax
mov eax, dword [edi + 0x150]
mov edx, dword [eax + 0x98]
add esp, 8
mov dword [ecx + 0xa8], edx
mov edi, edi
cmp dword [ebp - 0x4c], 0
je 0x41c150
mov eax, dword [ebp - 0x54]
mov esi, dword [ebp - 0x5c]
push eax
push ecx
mov ecx, dword [esi - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
mov dword [ebp - 0x14], esp
mov dword [ebp - 0x10], esp
call eax
cmp dword [esi - 4], 0
lea ecx, [esi - 4]
jl 0x41c01e
cmp eax, dword [esi - 0x10]
jne 0x41c01e
lea ebx, [esi - 0x10]
mov edx, 1
lock xadd dword [ecx], edx
jmp 0x41c056
mov ecx, dword [esi - 0xc]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov ebx, eax
test ebx, ebx
je 0x41d1ae
mov eax, dword [esi - 0xc]
mov dword [ebx + 4], eax
mov eax, dword [esi - 0xc]
lea ecx, [eax + eax + 2]
push ecx
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [ebx + 0x10]
push eax
call fcn.00532e6b
add esp, 0x10
mov ecx, dword [ebp - 0x10]
add ebx, 0x10
mov dword [ecx], ebx
mov esi, dword [ebp - 0x20]
push ecx
mov ecx, dword [esi - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
mov dword [ebp - 0x10], esp
mov byte [ebp - 4], 0x15
mov dword [ebp - 0x10], esp
call eax
cmp dword [esi - 4], 0
lea edx, [esi - 4]
jl 0x41c092
cmp eax, dword [esi - 0x10]
jne 0x41c092
lea ebx, [esi - 0x10]
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x41c0ca
mov ecx, dword [esi - 0xc]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov ebx, eax
test ebx, ebx
je 0x41d1ae
mov eax, dword [esi - 0xc]
mov dword [ebx + 4], eax
mov eax, dword [esi - 0xc]
lea ecx, [eax + eax + 2]
push ecx
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [ebx + 0x10]
push eax
call fcn.00532e6b
add esp, 0x10
mov ecx, dword [ebp - 0x10]
add ebx, 0x10
mov dword [ecx], ebx
mov ecx, dword [edi + 0x154]
mov byte [ebp - 4], 9
call fcn.00403670
mov ecx, dword [edi + 0x154]
mov edx, dword [ecx]
mov eax, dword [edx + 0x170]
call eax
cmp eax, 0x7d6
je 0x41cf84
cmp eax, 2
je 0x41cd1c
mov eax, dword [edi + 0x154]
mov ecx, dword [eax + 0x9c]
mov edx, dword [ebp - 0x54]
imul ecx, ecx, 0xd0
mov eax, dword [edx]
mov edx, dword [ecx + eax + 4]
test edx, edx
jne 0x41c128
xor eax, eax
jmp 0x41c13f
mov eax, edx
lea esi, [eax + 2]
lea ecx, [ecx]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x41c130
sub eax, esi
sar eax, 1
push eax
push edx
lea ecx, [ebp - 0x1c]
call fcn.00403290
lea esp, [esp]
mov ebx, dword [ebp - 0x18]
mov ecx, ebx
call fcn.004098a0
test eax, eax
je 0x41c5f0
mov eax, dword [ebp - 0x1c]
cmp dword [eax - 4], 1
jle 0x41c17a
mov ecx, dword [eax - 0xc]
push ecx
lea ecx, [ebp - 0x1c]
call fcn.00402d60
mov eax, dword [ebp - 0x1c]
push eax
mov ecx, ebx
call fcn.0040a1e0
lea edx, [ebp - 0x74]
push edx
mov ecx, ebx
call fcn.0040e680
mov edx, dword [eax]
mov eax, dword [ebp - 0x3c]
add eax, 0xfffffff0
lea esi, [edx - 0x10]
mov byte [ebp - 4], 0x16
mov dword [ebp - 0x14], eax
cmp esi, eax
je 0x41c24e
cmp dword [eax + 0xc], 0
jl 0x41c241
mov ecx, dword [esi]
cmp ecx, dword [eax]
jne 0x41c241
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
call edx
cmp dword [esi + 0xc], 0
lea ecx, [esi + 0xc]
jl 0x41c1dc
cmp eax, dword [esi]
jne 0x41c1dc
mov ebx, esi
mov eax, 1
lock xadd dword [ecx], eax
jmp 0x41c217
mov ecx, dword [esi + 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 0x41d1ae
mov eax, dword [esi + 4]
mov dword [ebx + 4], eax
mov eax, dword [esi + 4]
lea ecx, [eax + eax + 2]
push ecx
add esi, 0x10
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [ebx + 0x10]
push eax
call fcn.00532e6b
add esp, 0x10
mov eax, dword [ebp - 0x14]
add eax, 0xc
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x41c236
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
add ebx, 0x10
mov dword [ebp - 0x3c], ebx
mov ebx, dword [ebp - 0x18]
jmp 0x41c24e
mov eax, dword [edx - 0xc]
push eax
push edx
lea ecx, [ebp - 0x3c]
call fcn.00403290
mov eax, dword [ebp - 0x74]
add eax, 0xfffffff0
mov byte [ebp - 4], 9
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41c271
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 0x3c]
cmp dword [ecx - 0xc], 0
jne 0x41c366
lea edx, [ebp - 0x84]
push edx
mov ecx, ebx
call fcn.0040c520
mov edx, dword [eax]
mov eax, dword [ebp - 0x34]
add eax, 0xfffffff0
lea esi, [edx - 0x10]
mov byte [ebp - 4], 0x17
mov dword [ebp - 0x14], eax
cmp esi, eax
je 0x41c34a
cmp dword [eax + 0xc], 0
jl 0x41c33d
mov ecx, dword [esi]
cmp ecx, dword [eax]
jne 0x41c33d
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
call edx
cmp dword [esi + 0xc], 0
lea ecx, [esi + 0xc]
jl 0x41c2db
cmp eax, dword [esi]
jne 0x41c2db
mov ebx, esi
mov eax, 1
lock xadd dword [ecx], eax
jmp 0x41c316
mov ecx, dword [esi + 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 0x41d1ae
mov eax, dword [esi + 4]
mov dword [ebx + 4], eax
mov eax, dword [esi + 4]
lea ecx, [eax + eax + 2]
push ecx
add esi, 0x10
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [ebx + 0x10]
push eax
call fcn.00532e6b
add esp, 0x10
mov eax, dword [ebp - 0x14]
add eax, 0xc
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x41c335
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
add ebx, 0x10
mov dword [ebp - 0x34], ebx
jmp 0x41c34a
mov eax, dword [edx - 0xc]
push eax
push edx
lea ecx, [ebp - 0x34]
call fcn.00403290
mov eax, dword [ebp - 0x84]
add eax, 0xfffffff0
mov byte [ebp - 4], 9
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jmp 0x41c3a4
lea ecx, [ebp - 0x6c]
push ecx
mov ecx, ebx
call fcn.0040c520
mov edx, dword [ebp - 0x3c]
mov eax, dword [eax]
push edx
push eax
lea ecx, [ebp - 0x34]
push 0x55d250
push ecx
mov byte [ebp - 4], 0x18
call fcn.004047a0
mov eax, dword [ebp - 0x6c]
add eax, 0xfffffff0
add esp, 0x10
mov byte [ebp - 4], 9
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41c3b0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
movzx edx, word [edi + 0xe4b8]
test dx, dx
jne 0x41c3c2
xor edx, edx
xor eax, eax
jmp 0x41c412
mov cx, word [0x5d96d0]
xor eax, eax
test cx, cx
je 0x41c3bc
movzx ecx, cx
cmp cx, dx
je 0x41c3f0
inc eax
mov ecx, eax
imul ecx, ecx, 0x34
movzx ecx, word [ecx + 0x5d96d0]
test cx, cx
jne 0x41c3d3
xor edx, edx
xor eax, eax
jmp 0x41c412
imul eax, eax, 0x34
add eax, 0x5d96d2
mov edx, eax
test edx, edx
je 0x41c412
mov eax, edx
lea esi, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x41c403
sub eax, esi
sar eax, 1
push eax
push edx
lea ecx, [ebp - 0x50]
call fcn.00403290
cmp dword [edi + 0x148], 0
jne 0x41c457
push 0xb8
call fcn.00432a1f
add esp, 4
mov dword [ebp - 0x10], eax
mov byte [ebp - 4], 0x19
test eax, eax
je 0x41c448
push 0
mov ecx, eax
call fcn.00404960
jmp 0x41c44a
xor eax, eax
mov byte [ebp - 4], 9
mov dword [edi + 0x148], eax
mov dword [ebp - 0x24], eax
mov esi, dword [ebp - 0x50]
push ecx
mov ecx, dword [esi - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
mov dword [ebp - 0x14], esp
mov dword [ebp - 0x10], esp
call eax
cmp dword [esi - 4], 0
lea ecx, [esi - 4]
jl 0x41c487
cmp eax, dword [esi - 0x10]
jne 0x41c487
lea ebx, [esi - 0x10]
mov edx, 1
lock xadd dword [ecx], edx
jmp 0x41c4bf
mov ecx, dword [esi - 0xc]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov ebx, eax
test ebx, ebx
je 0x41d1ae
mov eax, dword [esi - 0xc]
mov dword [ebx + 4], eax
mov eax, dword [esi - 0xc]
lea ecx, [eax + eax + 2]
push ecx
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [ebx + 0x10]
push eax
call fcn.00532e6b
add esp, 0x10
mov ecx, dword [ebp - 0x10]
add ebx, 0x10
mov dword [ecx], ebx
mov esi, dword [ebp - 0x34]
push ecx
mov ecx, dword [esi - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
mov byte [ebp - 4], 0x1a
mov dword [ebp - 0x58], esp
mov dword [ebp - 0x10], esp
call eax
cmp dword [esi - 4], 0
lea edx, [esi - 4]
jl 0x41c4fb
cmp eax, dword [esi - 0x10]
jne 0x41c4fb
lea ebx, [esi - 0x10]
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x41c533
mov ecx, dword [esi - 0xc]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov ebx, eax
test ebx, ebx
je 0x41d1ae
mov eax, dword [esi - 0xc]
mov dword [ebx + 4], eax
mov eax, dword [esi - 0xc]
lea ecx, [eax + eax + 2]
push ecx
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [ebx + 0x10]
push eax
call fcn.00532e6b
add esp, 0x10
mov ecx, dword [ebp - 0x10]
add ebx, 0x10
mov dword [ecx], ebx
mov esi, dword [ebp - 0x20]
push ecx
mov ecx, dword [esi - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
mov dword [ebp - 0x10], esp
mov byte [ebp - 4], 0x1b
mov dword [ebp - 0x10], esp
call eax
cmp dword [esi - 4], 0
lea edx, [esi - 4]
jl 0x41c56f
cmp eax, dword [esi - 0x10]
jne 0x41c56f
lea ebx, [esi - 0x10]
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x41c5a7
mov ecx, dword [esi - 0xc]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov ebx, eax
test ebx, ebx
je 0x41d1ae
mov eax, dword [esi - 0xc]
mov dword [ebx + 4], eax
mov eax, dword [esi - 0xc]
lea ecx, [eax + eax + 2]
push ecx
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [ebx + 0x10]
push eax
call fcn.00532e6b
add esp, 0x10
mov ecx, dword [ebp - 0x10]
add ebx, 0x10
mov dword [ecx], ebx
mov ecx, dword [edi + 0x148]
mov byte [ebp - 4], 9
call fcn.00404ec0
test eax, eax
jne 0x41d1bd
mov ecx, dword [edi + 0x148]
mov edx, dword [ecx]
mov eax, dword [edx + 0x170]
call eax
cmp eax, 0x7d6
je 0x41cf64
cmp eax, 2
je 0x41cd1c
lea ebx, [ebx]
mov ecx, dword [ebp - 0x18]
call fcn.0040b240
test eax, eax
je 0x41ca40
mov ebx, dword [ebp - 0x18]
lea ecx, [ebp - 0x8c]
push ecx
mov ecx, ebx
call fcn.00411fc0
mov edx, dword [eax]
mov eax, dword [ebp - 0x38]
add eax, 0xfffffff0
lea esi, [edx - 0x10]
mov byte [ebp - 4], 0x1c
mov dword [ebp - 0x14], eax
cmp esi, eax
je 0x41c6d2
cmp dword [eax + 0xc], 0
jl 0x41c6c5
mov ecx, dword [esi]
cmp ecx, dword [eax]
jne 0x41c6c5
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
cmp dword [esi + 0xc], 0
lea ecx, [esi + 0xc]
jl 0x41c660
cmp eax, dword [esi]
jne 0x41c660
mov ebx, esi
mov edx, 1
lock xadd dword [ecx], edx
jmp 0x41c69b
mov ecx, dword [esi + 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 0x41d1ae
mov eax, dword [esi + 4]
mov dword [ebx + 4], eax
mov eax, dword [esi + 4]
lea ecx, [eax + eax + 2]
push ecx
add esi, 0x10
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [ebx + 0x10]
push eax
call fcn.00532e6b
add esp, 0x10
mov eax, dword [ebp - 0x14]
add eax, 0xc
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x41c6ba
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
add ebx, 0x10
mov dword [ebp - 0x38], ebx
mov ebx, dword [ebp - 0x18]
jmp 0x41c6d2
mov eax, dword [edx - 0xc]
push eax
push edx
lea ecx, [ebp - 0x38]
call fcn.00403290
mov eax, dword [ebp - 0x8c]
add eax, 0xfffffff0
mov byte [ebp - 4], 9
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41c6f8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 0x38]
cmp dword [ecx - 0xc], 0
jne 0x41c7e7
lea edx, [ebp - 0x70]
push edx
mov ecx, ebx
call fcn.0040c520
mov edx, dword [eax]
mov eax, dword [ebp - 0x30]
add eax, 0xfffffff0
lea esi, [edx - 0x10]
mov byte [ebp - 4], 0x1d
mov dword [ebp - 0x14], eax
cmp esi, eax
je 0x41c7ce
cmp dword [eax + 0xc], 0
jl 0x41c7c1
mov ecx, dword [esi]
cmp ecx, dword [eax]
jne 0x41c7c1
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
call edx
cmp dword [esi + 0xc], 0
lea ecx, [esi + 0xc]
jl 0x41c75f
cmp eax, dword [esi]
jne 0x41c75f
mov ebx, esi
mov eax, 1
lock xadd dword [ecx], eax
jmp 0x41c79a
mov ecx, dword [esi + 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 0x41d1ae
mov eax, dword [esi + 4]
mov dword [ebx + 4], eax
mov eax, dword [esi + 4]
lea ecx, [eax + eax + 2]
push ecx
add esi, 0x10
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [ebx + 0x10]
push eax
call fcn.00532e6b
add esp, 0x10
mov eax, dword [ebp - 0x14]
add eax, 0xc
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x41c7b9
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
add ebx, 0x10
mov dword [ebp - 0x30], ebx
jmp 0x41c7ce
mov eax, dword [edx - 0xc]
push eax
push edx
lea ecx, [ebp - 0x30]
call fcn.00403290
mov eax, dword [ebp - 0x70]
add eax, 0xfffffff0
mov byte [ebp - 4], 9
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jmp 0x41c825
lea ecx, [ebp - 0x78]
push ecx
mov ecx, ebx
call fcn.0040c520
mov edx, dword [ebp - 0x38]
mov eax, dword [eax]
push edx
push eax
lea ecx, [ebp - 0x30]
push 0x55d250
push ecx
mov byte [ebp - 4], 0x1e
call fcn.004047a0
mov eax, dword [ebp - 0x78]
add eax, 0xfffffff0
add esp, 0x10
mov byte [ebp - 4], 9
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41c831
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x409
call fcn.004084e0
add esp, 4
test eax, eax
jne 0x41c846
xor ecx, ecx
jmp 0x41c85f
mov ecx, eax
lea esi, [ecx + 2]
jmp 0x41c850
mov dx, word [ecx]
add ecx, 2
test dx, dx
jne 0x41c850
sub ecx, esi
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x50]
call fcn.00403290
cmp dword [edi + 0x14c], 0
jne 0x41c8a4
push 0xb8
call fcn.00432a1f
add esp, 4
mov dword [ebp - 0x58], eax
mov byte [ebp - 4], 0x1f
test eax, eax
je 0x41c895
push 0
mov ecx, eax
call fcn.00404960
jmp 0x41c897
xor eax, eax
mov byte [ebp - 4], 9
mov dword [edi + 0x14c], eax
mov dword [ebp - 0x24], eax
mov esi, dword [ebp - 0x50]
push ecx
mov ecx, dword [esi - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
mov dword [ebp - 0x58], esp
mov dword [ebp - 0x10], esp
call eax
cmp dword [esi - 4], 0
lea ecx, [esi - 4]
jl 0x41c8d4
cmp eax, dword [esi - 0x10]
jne 0x41c8d4
lea ebx, [esi - 0x10]
mov edx, 1
lock xadd dword [ecx], edx
jmp 0x41c90c
mov ecx, dword [esi - 0xc]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov ebx, eax
test ebx, ebx
je 0x41d1ae
mov eax, dword [esi - 0xc]
mov dword [ebx + 4], eax
mov eax, dword [esi - 0xc]
lea ecx, [eax + eax + 2]
push ecx
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [ebx + 0x10]
push eax
call fcn.00532e6b
add esp, 0x10
mov ecx, dword [ebp - 0x10]
add ebx, 0x10
mov dword [ecx], ebx
mov esi, dword [ebp - 0x30]
push ecx
mov ecx, dword [esi - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
mov byte [ebp - 4], 0x20
mov dword [ebp - 0x14], esp
mov dword [ebp - 0x10], esp
call eax
cmp dword [esi - 4], 0
lea edx, [esi - 4]
jl 0x41c948
cmp eax, dword [esi - 0x10]
jne 0x41c948
lea ebx, [esi - 0x10]
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x41c980
mov ecx, dword [esi - 0xc]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov ebx, eax
test ebx, ebx
je 0x41d1ae
mov eax, dword [esi - 0xc]
mov dword [ebx + 4], eax
mov eax, dword [esi - 0xc]
lea ecx, [eax + eax + 2]
push ecx
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [ebx + 0x10]
push eax
call fcn.00532e6b
add esp, 0x10
mov ecx, dword [ebp - 0x10]
add ebx, 0x10
mov dword [ecx], ebx
mov esi, dword [ebp - 0x20]
push ecx
mov ecx, dword [esi - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
mov dword [ebp - 0x10], esp
mov byte [ebp - 4], 0x21
mov dword [ebp - 0x10], esp
call eax
cmp dword [esi - 4], 0
lea edx, [esi - 4]
jl 0x41c9bc
cmp eax, dword [esi - 0x10]
jne 0x41c9bc
lea ebx, [esi - 0x10]
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x41c9f4
mov ecx, dword [esi - 0xc]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov ebx, eax
test ebx, ebx
je 0x41d1ae
mov eax, dword [esi - 0xc]
mov dword [ebx + 4], eax
mov eax, dword [esi - 0xc]
lea ecx, [eax + eax + 2]
push ecx
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [ebx + 0x10]
push eax
call fcn.00532e6b
add esp, 0x10
mov ecx, dword [ebp - 0x10]
add ebx, 0x10
mov dword [ecx], ebx
mov ecx, dword [edi + 0x14c]
mov byte [ebp - 4], 9
call fcn.00404ec0
test eax, eax
jne 0x41d354
mov ecx, dword [edi + 0x14c]
mov edx, dword [ecx]
mov eax, dword [edx + 0x170]
call eax
cmp eax, 0x7d6
je 0x41cf7f
cmp eax, 2
je 0x41cd1c
jmp 0x41ca40
mov ebx, dword [ebp - 0x18]
mov ecx, ebx
call fcn.004088a0
test eax, eax
je 0x41cb90
cmp dword [edi + 0x144], 0
jne 0x41ca8d
push 0x198
call fcn.00432a1f
add esp, 4
mov dword [ebp - 0x58], eax
mov byte [ebp - 4], 0x22
test eax, eax
je 0x41ca7e
push 0
mov ecx, eax
call fcn.0042a260
jmp 0x41ca80
xor eax, eax
mov byte [ebp - 4], 9
mov dword [edi + 0x144], eax
mov dword [ebp - 0x24], eax
push 0
mov ecx, ebx
call fcn.00408a10
push eax
push ecx
mov ecx, esp
mov dword [ebp - 0x58], esp
push 1
push ecx
mov ecx, ebx
call fcn.0040e330
mov eax, dword [ebp - 0x48]
push ecx
add eax, 0xfffffff0
mov dword [ebp - 0x10], esp
mov esi, esp
push eax
mov byte [ebp - 4], 0x23
call fcn.00402f60
add eax, 0x10
mov dword [esi], eax
mov eax, dword [ebp - 0x20]
add eax, 0xfffffff0
mov dword [ebp - 0x14], esp
mov esi, esp
push eax
mov byte [ebp - 4], 0x24
call fcn.00402f60
add eax, 0x10
mov dword [esi], eax
mov ecx, dword [edi + 0x144]
add esp, 4
mov byte [ebp - 4], 9
call fcn.0042a120
mov ecx, dword [edi + 0x144]
mov edx, dword [ecx]
mov eax, dword [edx + 0x170]
call eax
cmp eax, 2
je 0x41cd1c
cmp eax, 0x7d6
je 0x41cf46
mov ecx, dword [edi + 0x144]
lea edx, [ebp - 0x64]
push edx
call fcn.0042a0a0
mov eax, dword [ebp - 0x64]
add eax, 0xfffffff0
push eax
mov byte [ebp - 4], 0x25
call fcn.00402f60
lea esi, [eax + 0x10]
add esp, 4
mov dword [ebp - 0x10], esi
lea eax, [ebp - 0x10]
lea ecx, [edi + 0x3ac]
push eax
mov byte [ebp - 4], 0x26
call fcn.004034d0
lea eax, [esi - 0x10]
mov byte [ebp - 4], 0x25
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41cb6d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x64]
add eax, 0xfffffff0
mov byte [ebp - 4], 9
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41cb90
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp dword [ebp - 0x4c], 0
je 0x41cc1b
mov eax, dword [edi + 0x154]
cmp dword [eax + 0x9c], 0
jl 0x41cc1b
mov ecx, dword [eax + 0x9c]
mov eax, dword [ebp - 0x54]
mov esi, dword [eax]
mov edx, dword [eax + 4]
sub edx, esi
mov eax, 0x4ec4ec4f
imul edx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, ecx
jbe 0x41d1b3
imul ecx, ecx, 0xd0
mov ecx, dword [ecx + esi + 4]
push ecx
lea ecx, [ebp - 0x68]
call fcn.00405b90
lea edx, [ebp - 0x68]
lea ecx, [edi + 0xd868]
push edx
mov byte [ebp - 4], 0x27
call fcn.004034d0
mov eax, dword [ebp - 0x68]
add eax, 0xfffffff0
mov byte [ebp - 4], 9
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41cc1b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp dword [ebp - 0x40], 0
je 0x41cca6
mov eax, dword [edi + 0x150]
cmp dword [eax + 0x98], 0
jl 0x41cca6
mov ecx, dword [eax + 0x98]
mov eax, dword [ebp - 0x60]
mov esi, dword [eax]
mov edx, dword [eax + 4]
sub edx, esi
mov eax, 0x4ec4ec4f
imul edx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, ecx
jbe 0x41d1b3
imul ecx, ecx, 0xd0
mov ecx, dword [ecx + esi + 4]
push ecx
lea ecx, [ebp - 0x44]
call fcn.00405b90
lea edx, [ebp - 0x44]
lea ecx, [edi + 0xd864]
push edx
mov byte [ebp - 4], 0x28
call fcn.004034d0
mov eax, dword [ebp - 0x44]
add eax, 0xfffffff0
mov byte [ebp - 4], 9
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41cca6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [0x60dfe0]
push 1
push ecx
mov ecx, edi
call fcn.0041b250
cmp eax, 9
je 0x41d4ef
cmp eax, 1
je 0x41d4fb
cmp eax, 2
jne 0x41cd23
mov edx, dword [ebp - 0x24]
cmp edx, dword [edi + 0x12c]
je 0x41b730
mov eax, edx
cmp eax, dword [edi + 0x150]
je 0x41b7c0
mov ecx, edx
cmp ecx, dword [edi + 0x154]
je 0x41bfe0
cmp edx, dword [edi + 0x148]
je 0x41c150
cmp eax, dword [edi + 0x14c]
je 0x41c5f0
cmp ecx, dword [edi + 0x144]
je 0x41ca40
mov dword [ebp - 0x2c], 0x642
mov ecx, dword [ebp - 0x60]
push ecx
call fcn.00402350
mov edx, dword [ebp - 0x54]
push edx
call fcn.00402350
mov ecx, dword [edi + 0x12c]
xor esi, esi
add esp, 8
cmp ecx, esi
je 0x41cd53
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push 1
call edx
mov dword [edi + 0x12c], esi
mov ecx, dword [edi + 0x144]
cmp ecx, esi
je 0x41cd6c
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push 1
call edx
mov dword [edi + 0x144], esi
mov ecx, dword [edi + 0x148]
cmp ecx, esi
je 0x41cd85
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push 1
call edx
mov dword [edi + 0x148], esi
mov ecx, dword [edi + 0x14c]
cmp ecx, esi
je 0x41cd9e
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push 1
call edx
mov dword [edi + 0x14c], esi
mov ecx, dword [edi + 0x154]
cmp ecx, esi
je 0x41cdb7
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push 1
call edx
mov dword [edi + 0x154], esi
mov ecx, dword [edi + 0x150]
cmp ecx, esi
je 0x41cdd0
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push 1
call edx
mov dword [edi + 0x150], esi
mov eax, dword [ebp - 0x48]
add eax, 0xfffffff0
mov byte [ebp - 4], 8
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41cdf3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x20]
add eax, 0xfffffff0
mov byte [ebp - 4], 7
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41ce16
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x38]
add eax, 0xfffffff0
mov byte [ebp - 4], 6
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41ce39
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x30]
add eax, 0xfffffff0
mov byte [ebp - 4], 5
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41ce5c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x3c]
add eax, 0xfffffff0
mov byte [ebp - 4], 4
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41ce7f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x34]
add eax, 0xfffffff0
mov byte [ebp - 4], 3
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41cea2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x50]
add eax, 0xfffffff0
mov byte [ebp - 4], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41cec5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x1c]
add eax, 0xfffffff0
mov byte [ebp - 4], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41cee8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x28]
add eax, 0xfffffff0
mov byte [ebp - 4], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41cf0b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x5c]
add eax, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41cf31
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, ebx
call fcn.0040b240
test eax, eax
jne 0x41c5f0
mov ecx, ebx
call fcn.004098a0
test eax, eax
jne 0x41c150
cmp dword [ebp - 0x4c], 0
je 0x41cfa3
mov eax, dword [edi + 0x150]
mov dword [eax + 0x9c], 1
jmp 0x41bfe0
mov ecx, dword [ebp - 0x18]
jmp 0x41cf57
cmp dword [ebp - 0x40], 0
je 0x41d037
mov eax, dword [edi + 0x150]
mov dword [eax + 0x9c], 1
jmp 0x41b7c0
cmp dword [ebp - 0x40], 0
je 0x41b730
jmp 0x41cf8e
mov ecx, dword [edi + 0x14c]
xor esi, esi
cmp ecx, esi
je 0x41cfca
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push 1
call eax
mov dword [edi + 0x14c], esi
mov ecx, dword [edi + 0x150]
cmp ecx, esi
je 0x41cfe3
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push 1
call eax
mov dword [edi + 0x150], esi
mov ecx, dword [edi + 0x154]
cmp ecx, esi
je 0x41cffc
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push 1
call eax
mov dword [edi + 0x154], esi
mov ecx, dword [edi + 0x148]
cmp ecx, esi
je 0x41d015
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push 1
call eax
mov dword [edi + 0x148], esi
mov ecx, dword [edi + 0x144]
cmp ecx, esi
je 0x41b730
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push 1
call eax
mov dword [edi + 0x144], esi
jmp 0x41b730
mov eax, dword [edi + 0x154]
mov dword [eax + 0xa4], 1
jmp 0x41b730
mov eax, dword [edi + 0x12c]
mov ecx, dword [eax + 0xa0]
test ecx, ecx
je 0x41d062
mov ecx, dword [ecx + 0x108]
mov dword [edi + 0xe4c0], ecx
test ecx, ecx
je 0x41b730
mov ecx, dword [eax + 0xa8]
mov dx, word [edi + 0xd890]
lea eax, [ebp - 0x80]
mov dword [edi + 0xda0c], ecx
push eax
mov ecx, esi
mov word [edi + 0xe4b8], dx
call fcn.0040deb0
mov ecx, dword [eax]
mov esi, dword [ebp - 0x20]
lea eax, [ecx - 0x10]
add esi, 0xfffffff0
mov byte [ebp - 4], 0xe
cmp eax, esi
je 0x41d0f1
cmp dword [esi + 0xc], 0
lea ebx, [esi + 0xc]
jl 0x41d0e4
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x41d0e4
push eax
call fcn.00402f60
mov dword [ebp - 0x10], eax
add esp, 4
or eax, 0xffffffff
lock xadd dword [ebx], eax
dec eax
test eax, eax
jg 0x41d0d9
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
mov ecx, dword [ebp - 0x10]
add ecx, 0x10
mov dword [ebp - 0x20], ecx
jmp 0x41d0f1
mov eax, dword [ecx - 0xc]
push eax
push ecx
lea ecx, [ebp - 0x20]
call fcn.00403290
mov eax, dword [ebp - 0x80]
add eax, 0xfffffff0
mov byte [ebp - 4], 9
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41d114
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [ebp - 0x88]
push ecx
mov ecx, dword [ebp - 0x18]
call fcn.0040e030
mov ecx, dword [eax]
mov esi, dword [ebp - 0x48]
lea eax, [ecx - 0x10]
add esi, 0xfffffff0
mov byte [ebp - 4], 0xf
cmp eax, esi
je 0x41d17f
cmp dword [esi + 0xc], 0
lea ebx, [esi + 0xc]
jl 0x41d172
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x41d172
push eax
call fcn.00402f60
mov dword [ebp - 0x10], eax
add esp, 4
or eax, 0xffffffff
lock xadd dword [ebx], eax
dec eax
test eax, eax
jg 0x41d167
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
mov ecx, dword [ebp - 0x10]
add ecx, 0x10
mov dword [ebp - 0x48], ecx
jmp 0x41d17f
mov eax, dword [ecx - 0xc]
push eax
push ecx
lea ecx, [ebp - 0x48]
call fcn.00403290
mov eax, dword [ebp - 0x88]
add eax, 0xfffffff0
mov byte [ebp - 4], 9
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41b730
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x41b730
call fcn.00402d50
push str.invalid_vector_T__subscript
call fcn.0054a3cd
push 0
push 0
push 8
push ecx
mov ecx, esp
mov dword [ebp - 0x58], esp
push ecx
mov ecx, dword [ebp - 0x18]
call fcn.0040deb0
push 0
call fcn.004196e0
mov eax, dword [ebp - 0x48]
add eax, 0xfffffff0
add esp, 0x14
mov byte [ebp - 4], 8
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41d1ff
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x20]
add eax, 0xfffffff0
mov byte [ebp - 4], 7
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41d222
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x38]
add eax, 0xfffffff0
mov byte [ebp - 4], 6
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41d245
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x30]
add eax, 0xfffffff0
mov byte [ebp - 4], 5
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41d268
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x3c]
add eax, 0xfffffff0
mov byte [ebp - 4], 4
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41d28b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x34]
add eax, 0xfffffff0
mov byte [ebp - 4], 3
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41d2ae
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x50]
add eax, 0xfffffff0
mov byte [ebp - 4], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41d2d1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x1c]
add eax, 0xfffffff0
mov byte [ebp - 4], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41d2f4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x28]
add eax, 0xfffffff0
mov byte [ebp - 4], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41d317
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x5c]
add eax, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41d33d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, 0x643
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0
push 0
push 8
push ecx
mov ecx, esp
mov dword [ebp - 0x58], esp
push ecx
mov ecx, dword [ebp - 0x18]
call fcn.0040deb0
push 0
call fcn.004196e0
mov eax, dword [ebp - 0x48]
add eax, 0xfffffff0
add esp, 0x14
mov byte [ebp - 4], 8
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41d396
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x20]
add eax, 0xfffffff0
mov byte [ebp - 4], 7
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41d3b9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x38]
add eax, 0xfffffff0
mov byte [ebp - 4], 6
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41d3dc
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x30]
add eax, 0xfffffff0
mov byte [ebp - 4], 5
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41d3ff
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x3c]
add eax, 0xfffffff0
mov byte [ebp - 4], 4
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41d422
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x34]
add eax, 0xfffffff0
mov byte [ebp - 4], 3
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41d445
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x50]
add eax, 0xfffffff0
mov byte [ebp - 4], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41d468
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x1c]
add eax, 0xfffffff0
mov byte [ebp - 4], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41d48b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x28]
add eax, 0xfffffff0
mov byte [ebp - 4], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41d4ae
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x5c]
add eax, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41d33d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, 0x643
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [ebp - 0x2c], 0x643
jmp 0x41cd23
mov dword [ebp - 0x2c], 0xbc2
jmp 0x41cd23