Function at 0x412140
Capabilities:
Check mutex on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4cd836
mov eax, dword fs:[0]
push eax
sub esp, 0x30
push ebx
push esi
push edi
mov eax, dword [0x52cc80]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x10], 0
mov esi, dword [ebp + 8]
mov ecx, dword [ebx + 0x10]
mov edx, dword [esi]
sub ecx, 0x10
lea eax, [edx - 0x10]
or edi, 0xffffffff
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x28], ecx
cmp eax, ecx
je 0x4121df
cmp dword [ecx + 0xc], 0
lea ebx, [ecx + 0xc]
mov dword [ebp - 0x18], ebx
mov ebx, dword [ebp - 0x1c]
jl 0x4121d3
mov eax, dword [eax]
cmp eax, dword [ecx]
jne 0x4121d3
mov ecx, dword [ebp - 0x24]
call fcn.004027c0
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x18]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4121c8
mov eax, dword [ebp - 0x28]
push eax
mov ecx, dword [eax]
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x2c]
add eax, 0x10
mov dword [ebx + 0x10], eax
jmp 0x4121df
push dword [edx - 0xc]
lea ecx, [ebx + 0x10]
push edx
call fcn.00402690
mov edx, dword [esi]
lea eax, [ebx + 0x88]
lea ecx, [edx - 0x10]
mov dword [ebp - 0x18], ecx
mov ecx, dword [eax]
sub ecx, 0x10
mov dword [ebp - 0x28], ecx
cmp dword [ebp - 0x18], ecx
je 0x412253
cmp dword [ecx + 0xc], 0
lea esi, [ecx + 0xc]
mov dword [ebp - 0x2c], esi
mov esi, dword [ebp + 8]
jl 0x412248
mov eax, dword [edx - 0x10]
cmp eax, dword [ecx]
jne 0x412242
mov ecx, dword [ebp - 0x18]
call fcn.004027c0
mov dword [ebp + 8], eax
mov eax, dword [ebp - 0x2c]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x412234
mov eax, dword [ebp - 0x28]
push eax
mov ecx, dword [eax]
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp + 8]
add eax, 0x10
mov dword [ebx + 0x88], eax
jmp 0x412253
lea eax, [ebx + 0x88]
push dword [edx - 0xc]
mov ecx, eax
push edx
call fcn.00402690
push ecx
mov ecx, esp
mov dword [ebp + 8], esp
push str.470c040401061b1c090404
call fcn.004024a0
mov dword [ebp - 4], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2c]
call fcn.00421160
add esp, 4
mov dword [ebp - 4], 1
mov ecx, dword [eax]
test ecx, ecx
jne 0x41228e
or eax, 0xffffffff
jmp 0x4122b2
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
jge 0x41229b
or eax, 0xffffffff
jmp 0x4122b2
push ecx
push eax
call fcn.004aa70f
add esp, 8
test eax, eax
jne 0x4122ae
or eax, 0xffffffff
jmp 0x4122b2
sub eax, dword [esi]
sar eax, 1
cmp eax, 0xffffffff
setne byte [ebp + 0xb]
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x2c]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4122dc
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp byte [ebp + 0xb], 0
je 0x4122e9
mov byte [ebx + 0x8c], 1
push ecx
mov ecx, esp
mov dword [ebp + 8], esp
push str.471a091f0c091c0955
call fcn.004024a0
mov dword [ebp - 4], 3
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x18]
call fcn.00421160
add esp, 4
mov dword [ebp - 4], 4
mov ecx, 1
mov dword [ebp - 0x10], ecx
mov ecx, dword [eax]
test ecx, ecx
je 0x412346
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
jl 0x412346
push ecx
push eax
call fcn.004aa70f
add esp, 8
test eax, eax
je 0x412346
sub eax, dword [esi]
sar eax, 1
cmp eax, 0xffffffff
jne 0x4123a0
push ecx
mov ecx, esp
mov dword [ebp + 8], esp
push str.4701060e070b050c0401060d55
call fcn.004024a0
mov dword [ebp - 4], 5
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x2c]
call fcn.00421160
add esp, 4
mov dword [ebp - 4], 6
mov ecx, 3
mov dword [ebp - 0x10], ecx
mov ecx, dword [eax]
test ecx, ecx
je 0x4123a6
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
jl 0x4123a6
push ecx
push eax
call fcn.004aa70f
add esp, 8
test eax, eax
je 0x4123a6
sub eax, dword [esi]
sar eax, 1
cmp eax, 0xffffffff
je 0x4123a6
mov byte [ebp + 0xb], 1
jmp 0x4123aa
mov byte [ebp + 0xb], 0
mov dword [ebp - 4], 4
mov edx, dword [ebp - 0x10]
test dl, 2
je 0x4123eb
and edx, 0xfffffffd
mov dword [ebp - 0x10], edx
mov dword [ebp - 4], 4
mov eax, dword [ebp - 0x2c]
add eax, 0xfffffff0
mov dword [ebp - 0x28], eax
add eax, 0xc
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4123eb
mov edx, dword [ebp - 0x28]
push edx
mov ecx, dword [edx]
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x10]
mov dword [ebp - 4], 0xffffffff
test dl, 1
je 0x412420
and edx, 0xfffffffe
mov dword [ebp - 0x10], edx
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x18]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x412420
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp byte [ebp + 0xb], 0
je 0x412430
lea edx, [ebx + 0x10]
mov ecx, esi
call fcn.004115b0
push ecx
mov ecx, esp
mov dword [ebp - 0x2c], esp
push str.470b1a1a0d0f0609050d55
call fcn.004024a0
mov dword [ebp - 4], 9
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 8]
call fcn.00421160
add esp, 4
mov dword [ebp - 4], 0xa
push eax
lea eax, [ebp - 0x24]
push eax
mov ecx, ebx
call fcn.004120e0
mov byte [ebp - 4], 0xc
mov edx, dword [ebp + 8]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x41248c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x24]
cmp dword [eax - 0xc], 0
je 0x4124bb
push ecx
mov esi, esp
lea ecx, [eax - 0x10]
mov dword [ebp + 8], esp
mov dword [ebp - 0x2c], esi
call fcn.004027c0
add eax, 0x10
mov dword [esi], eax
mov byte [ebp - 4], 0xf
mov byte [ebp - 4], 0xc
call fcn.00439000
add esp, 4
push ecx
mov ecx, esp
mov dword [ebp + 8], esp
push str.47090f0d061c1a0d0f18091c0055
call fcn.004024a0
mov byte [ebp - 4], 0x10
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x28]
call fcn.00421160
add esp, 4
mov byte [ebp - 4], 0x11
push eax
lea eax, [ebp - 0x2c]
push eax
mov ecx, ebx
call fcn.004120e0
mov byte [ebp - 4], 0x12
mov edx, dword [eax]
mov esi, dword [0x531f54]
lea ecx, [edx - 0x10]
add esi, 0xfffffff0
cmp ecx, esi
je 0x412549
cmp dword [esi + 0xc], 0
jl 0x41253b
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x41253b
call fcn.004027c0
mov dword [ebp + 8], eax
mov ecx, edi
lea edx, [esi + 0xc]
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x412531
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp + 8]
add eax, 0x10
mov dword [0x531f54], eax
jmp 0x412549
push dword [edx - 0xc]
mov ecx, 0x531f54
push edx
call fcn.00402690
mov byte [ebp - 4], 0x11
mov edx, dword [ebp - 0x2c]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x412569
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0xc
mov edx, dword [ebp - 0x28]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x412589
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push ecx
mov ecx, esp
mov dword [ebp - 0x2c], esp
push str.471d1b0d00030b1d
call fcn.004024a0
mov byte [ebp - 4], 0x15
mov byte [ebp - 4], 0xc
lea ecx, [ebp + 8]
call fcn.00421160
add esp, 4
mov byte [ebp - 4], 0x16
mov ecx, dword [eax]
test ecx, ecx
jne 0x4125bb
or eax, 0xffffffff
jmp 0x4125e1
mov eax, dword [ebx + 0x10]
cmp dword [eax - 0xc], 0
jge 0x4125c9
or eax, 0xffffffff
jmp 0x4125e1
push ecx
push eax
call fcn.004aa70f
add esp, 8
test eax, eax
jne 0x4125dc
or eax, 0xffffffff
jmp 0x4125e1
sub eax, dword [ebx + 0x10]
sar eax, 1
test eax, eax
setns byte [0x531d94]
mov byte [ebp - 4], 0xc
mov edx, dword [ebp + 8]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x41260a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebx]
push 0x531f54
mov ecx, ebx
call dword [eax + 8]
mov eax, dword [0x531f54]
cmp dword [eax - 0xc], 0
jne 0x412770
lea ecx, [ebp + 8]
call fcn.00420260
mov byte [ebp - 4], 0x18
push eax
mov ecx, 0x531f54
call fcn.004025b0
mov byte [ebp - 4], 0xc
mov edx, dword [ebp + 8]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x41265c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0x50f1e8
push ecx
mov ecx, esp
mov dword [ebp - 0x2c], esp
push str.4506071e095e5c460d100d
call fcn.004024a0
mov byte [ebp - 4], 0x1a
mov byte [ebp - 4], 0xc
lea ecx, [ebp + 8]
call fcn.00421160
add esp, 4
mov byte [ebp - 4], 0x1b
push dword [eax]
mov ecx, 0x531f54
call fcn.0040e610
mov byte [ebp - 4], 0xc
mov edx, dword [ebp + 8]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4126b4
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0x50f1e8
push ecx
mov ecx, esp
mov dword [ebp - 0x2c], esp
push str.4506071e09460d100d
call fcn.004024a0
mov byte [ebp - 4], 0x1d
mov byte [ebp - 4], 0xc
lea ecx, [ebp + 8]
call fcn.00421160
add esp, 4
mov byte [ebp - 4], 0x1e
push dword [eax]
mov ecx, 0x531f54
call fcn.0040e610
mov byte [ebp - 4], 0xc
mov edx, dword [ebp + 8]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x41270c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0x50f1e8
push ecx
mov ecx, esp
mov dword [ebp - 0x2c], esp
push str.460d100d
call fcn.004024a0
mov byte [ebp - 4], 0x20
mov byte [ebp - 4], 0xc
lea ecx, [ebp + 8]
call fcn.00421160
add esp, 4
mov byte [ebp - 4], 0x21
push dword [eax]
mov ecx, 0x531f54
call fcn.0040e610
mov byte [ebp - 4], 0xc
mov edx, dword [ebp + 8]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x412764
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebx]
push 0x531f54
mov ecx, ebx
call dword [eax + 8]
push ecx
mov esi, esp
mov dword [ebp - 0x2c], esp
push 0x531f54
push ecx
mov ecx, esp
mov dword [ebp - 0x28], esp
push str.3b070e1c1f091a0d34
mov dword [0x52e31c], 0x80000002
call fcn.004024a0
mov byte [ebp - 4], 0x23
mov byte [ebp - 4], 0xc
lea ecx, [ebp + 8]
call fcn.00421160
add esp, 4
mov byte [ebp - 4], 0x24
mov edx, eax
mov ecx, esi
call fcn.0040e9b0
add esp, 4
mov byte [ebp - 4], 0x25
mov byte [ebp - 4], 0x24
call fcn.0043bcc0
add esp, 4
mov byte [ebp - 4], 0xc
mov edx, dword [ebp + 8]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4127e8
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push ecx
mov ecx, esp
mov dword [ebp + 8], esp
push str.470d101c0d1a06090404070f55
call fcn.004024a0
mov byte [ebp - 4], 0x27
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x28]
call fcn.00421160
add esp, 4
mov byte [ebp - 4], 0x28
push eax
lea eax, [ebp - 0x2c]
push eax
mov ecx, ebx
call fcn.004120e0
mov byte [ebp - 4], 0x29
mov edx, dword [eax]
mov esi, dword [0x532028]
lea ecx, [edx - 0x10]
add esi, 0xfffffff0
cmp ecx, esi
je 0x412876
cmp dword [esi + 0xc], 0
jl 0x412868
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x412868
call fcn.004027c0
mov dword [ebp + 8], eax
mov ecx, edi
lea edx, [esi + 0xc]
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41285e
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp + 8]
add eax, 0x10
mov dword [0x532028], eax
jmp 0x412876
push dword [edx - 0xc]
mov ecx, 0x532028
push edx
call fcn.00402690
mov byte [ebp - 4], 0x28
mov edx, dword [ebp - 0x2c]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x412896
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0xc
mov edx, dword [ebp - 0x28]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4128b6
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [0x532028]
movzx ecx, byte [0x531d96]
cmp dword [eax - 0xc], 0
mov eax, dword [0x52c6d8]
mov edx, 1
cmovne ecx, edx
mov byte [0x531d96], cl
mov ecx, 0x52c6d8
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x20], eax
mov byte [ebp - 4], 0x2d
movzx eax, byte [ebx + 0x8c]
push eax
push ecx
mov ecx, esp
mov dword [ebp - 0x2c], esp
push str.05370a211b2c040421061b1c090404554d0c
call fcn.004024a0
mov byte [ebp - 4], 0x2e
mov byte [ebp - 4], 0x2d
lea ecx, [ebp + 8]
call fcn.00421160
add esp, 4
mov byte [ebp - 4], 0x2f
push dword [eax]
lea eax, [ebp - 0x20]
push eax
call fcn.00410de0
add esp, 0xc
mov byte [ebp - 4], 0x2d
mov edx, dword [ebp + 8]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x412948
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push ecx
mov ecx, esp
mov dword [ebp + 8], esp
push str.47091818010c55
call fcn.004024a0
mov byte [ebp - 4], 0x31
mov byte [ebp - 4], 0x2d
lea ecx, [ebp - 0x28]
call fcn.00421160
add esp, 4
mov byte [ebp - 4], 0x32
push eax
lea eax, [ebp - 0x2c]
push eax
mov ecx, ebx
call fcn.004120e0
mov byte [ebp - 4], 0x33
mov edx, dword [eax]
mov esi, dword [ebx + 0x1c]
lea ecx, [ebx + 0x1c]
lea eax, [edx - 0x10]
sub esi, 0x10
mov dword [ebp + 8], eax
cmp eax, esi
je 0x4129d5
cmp dword [esi + 0xc], 0
jl 0x4129cc
mov eax, dword [eax]
cmp eax, dword [esi]
jne 0x4129cc
mov ecx, dword [ebp + 8]
call fcn.004027c0
mov dword [ebp + 8], eax
mov ecx, edi
lea eax, [esi + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4129c1
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp + 8]
add eax, 0x10
mov dword [ebx + 0x1c], eax
jmp 0x4129d5
push dword [edx - 0xc]
push edx
call fcn.00402690
mov byte [ebp - 4], 0x32
mov edx, dword [ebp - 0x2c]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4129f5
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x2d
mov edx, dword [ebp - 0x28]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x412a15
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push ecx
mov ecx, esp
mov dword [ebp + 8], esp
push str.470d101c0d061b0107060609050d55
call fcn.004024a0
mov byte [ebp - 4], 0x36
mov byte [ebp - 4], 0x2d
lea ecx, [ebp - 0x28]
call fcn.00421160
add esp, 4
mov byte [ebp - 4], 0x37
push eax
lea eax, [ebp - 0x2c]
push eax
mov ecx, ebx
call fcn.004120e0
mov byte [ebp - 4], 0x38
mov edx, dword [eax]
mov esi, dword [ebx + 0x20]
lea ecx, [ebx + 0x20]
lea eax, [edx - 0x10]
sub esi, 0x10
mov dword [ebp + 8], eax
cmp eax, esi
je 0x412aa2
cmp dword [esi + 0xc], 0
jl 0x412a99
mov eax, dword [eax]
cmp eax, dword [esi]
jne 0x412a99
mov ecx, dword [ebp + 8]
call fcn.004027c0
mov dword [ebp + 8], eax
mov ecx, edi
lea eax, [esi + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x412a8e
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp + 8]
add eax, 0x10
mov dword [ebx + 0x20], eax
jmp 0x412aa2
push dword [edx - 0xc]
push edx
call fcn.00402690
mov byte [ebp - 4], 0x37
mov edx, dword [ebp - 0x2c]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x412ac2
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x2d
mov edx, dword [ebp - 0x28]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x412ae2
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push ecx
mov ecx, esp
mov dword [ebp + 8], esp
push str.470a010b55
call fcn.004024a0
mov byte [ebp - 4], 0x3b
mov byte [ebp - 4], 0x2d
lea ecx, [ebp - 0x28]
call fcn.00421160
add esp, 4
mov byte [ebp - 4], 0x3c
push eax
lea eax, [ebp - 0x2c]
push eax
mov ecx, ebx
call fcn.004120e0
mov byte [ebp - 4], 0x3d
mov edx, dword [eax]
mov esi, dword [ebx + 0x24]
lea ecx, [ebx + 0x24]
lea eax, [edx - 0x10]
sub esi, 0x10
mov dword [ebp + 8], eax
cmp eax, esi
je 0x412b6f
cmp dword [esi + 0xc], 0
jl 0x412b66
mov eax, dword [eax]
cmp eax, dword [esi]
jne 0x412b66
mov ecx, dword [ebp + 8]
call fcn.004027c0
mov dword [ebp + 8], eax
mov ecx, edi
lea eax, [esi + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x412b5b
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp + 8]
add eax, 0x10
mov dword [ebx + 0x24], eax
jmp 0x412b6f
push dword [edx - 0xc]
push edx
call fcn.00402690
mov byte [ebp - 4], 0x3c
mov edx, dword [ebp - 0x2c]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x412b8f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x2d
mov edx, dword [ebp - 0x28]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x412baf
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push ecx
mov ecx, esp
mov dword [ebp + 8], esp
push str.471e0d1a010e010d1a55
call fcn.004024a0
mov byte [ebp - 4], 0x40
mov byte [ebp - 4], 0x2d
lea ecx, [ebp - 0x28]
call fcn.00421160
add esp, 4
mov byte [ebp - 4], 0x41
push eax
lea eax, [ebp - 0x2c]
push eax
mov ecx, ebx
call fcn.004120e0
mov byte [ebp - 4], 0x42
mov edx, dword [eax]
mov esi, dword [ebx + 0x28]
lea ecx, [ebx + 0x28]
lea eax, [edx - 0x10]
sub esi, 0x10
mov dword [ebp + 8], eax
cmp eax, esi
je 0x412c3c
cmp dword [esi + 0xc], 0
jl 0x412c33
mov eax, dword [eax]
cmp eax, dword [esi]
jne 0x412c33
mov ecx, dword [ebp + 8]
call fcn.004027c0
mov dword [ebp + 8], eax
mov ecx, edi
lea eax, [esi + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x412c28
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp + 8]
add eax, 0x10
mov dword [ebx + 0x28], eax
jmp 0x412c3c
push dword [edx - 0xc]
push edx
call fcn.00402690
mov byte [ebp - 4], 0x41
mov edx, dword [ebp - 0x2c]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x412c5c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x2d
mov edx, dword [ebp - 0x28]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x412c7c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push ecx
mov ecx, esp
mov dword [ebp + 8], esp
push str.475d581e0d1a010e010d1a55
call fcn.004024a0
mov byte [ebp - 4], 0x45
mov byte [ebp - 4], 0x2d
lea ecx, [ebp - 0x28]
call fcn.00421160
add esp, 4
mov byte [ebp - 4], 0x46
push eax
lea eax, [ebp - 0x2c]
push eax
mov ecx, ebx
call fcn.004120e0
mov byte [ebp - 4], 0x47
mov edx, dword [eax]
mov esi, dword [ebx + 0x2c]
lea ecx, [ebx + 0x2c]
lea eax, [edx - 0x10]
sub esi, 0x10
mov dword [ebp + 8], eax
cmp eax, esi
je 0x412d09
cmp dword [esi + 0xc], 0
jl 0x412d00
mov eax, dword [eax]
cmp eax, dword [esi]
jne 0x412d00
mov ecx, dword [ebp + 8]
call fcn.004027c0
mov dword [ebp + 8], eax
mov ecx, edi
lea eax, [esi + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x412cf5
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp + 8]
add eax, 0x10
mov dword [ebx + 0x2c], eax
jmp 0x412d09
push dword [edx - 0xc]
push edx
call fcn.00402690
mov byte [ebp - 4], 0x46
mov edx, dword [ebp - 0x2c]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x412d29
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x2d
mov edx, dword [ebp - 0x28]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x412d49
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push ecx
mov ecx, esp
mov dword [ebp + 8], esp
push str.471b1f0e071a5d5855
call fcn.004024a0
mov byte [ebp - 4], 0x4a
mov byte [ebp - 4], 0x2d
lea ecx, [ebp - 0x28]
call fcn.00421160
add esp, 4
mov byte [ebp - 4], 0x4b
push eax
lea eax, [ebp - 0x2c]
push eax
mov ecx, ebx
call fcn.004120e0
mov byte [ebp - 4], 0x4c
mov edx, dword [eax]
mov esi, dword [ebx + 0x30]
lea ecx, [ebx + 0x30]
lea eax, [edx - 0x10]
sub esi, 0x10
mov dword [ebp + 8], eax
cmp eax, esi
je 0x412dd8
cmp dword [esi + 0xc], 0
jl 0x412dcf
mov eax, dword [eax]
cmp eax, dword [esi]
jne 0x412dcf
mov ecx, dword [ebp + 8]
call fcn.004027c0
mov dword [ebp + 8], eax
mov ecx, edi
lea eax, [esi + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x412dc2
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp + 8]
lea esi, [ebx + 0x30]
add eax, 0x10
mov dword [esi], eax
jmp 0x412ddb
push dword [edx - 0xc]
push edx
call fcn.00402690
lea esi, [ebx + 0x30]
mov byte [ebp - 4], 0x4b
mov edx, dword [ebp - 0x2c]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x412dfb
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x2d
mov edx, dword [ebp - 0x28]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x412e1b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
je 0x412ea8
push ecx
mov ecx, esp
mov dword [ebp + 8], esp
push 0x51048c
call fcn.004024a0
mov byte [ebp - 4], 0x4f
push ecx
mov ecx, dword [ebx + 0x30]
mov esi, esp
sub ecx, 0x10
mov dword [ebp - 0x2c], esp
mov dword [ebp - 0x28], esi
call fcn.004027c0
add eax, 0x10
mov dword [esi], eax
mov byte [ebp - 4], 0x51
mov byte [ebp - 4], 0x2d
lea ecx, [ebp - 0x3c]
call fcn.00420430
add esp, 8
mov byte [ebp - 4], 0x52
push eax
lea ecx, [ebx + 0x34]
call fcn.00417730
mov byte [ebp - 4], 0x2d
mov ecx, dword [ebp - 0x3c]
test ecx, ecx
je 0x412ea8
mov edx, dword [ebp - 0x38]
push ecx
call fcn.00417db0
push dword [ebp - 0x3c]
call fcn.004a9925
add esp, 8
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x34], 0
push ecx
mov ecx, esp
mov dword [ebp + 8], esp
push 0x510490
call fcn.004024a0
mov byte [ebp - 4], 0x53
mov byte [ebp - 4], 0x2d
lea ecx, [ebp - 0x28]
call fcn.00421160
add esp, 4
mov byte [ebp - 4], 0x54
push eax
lea eax, [ebp - 0x2c]
push eax
mov ecx, ebx
call fcn.004120e0
mov byte [ebp - 4], 0x55
mov edx, dword [eax]
mov esi, dword [ebx + 0x40]
lea ecx, [ebx + 0x40]
lea eax, [edx - 0x10]
sub esi, 0x10
mov dword [ebp + 8], eax
cmp eax, esi
je 0x412f35
cmp dword [esi + 0xc], 0
jl 0x412f2c
mov eax, dword [eax]
cmp eax, dword [esi]
jne 0x412f2c
mov ecx, dword [ebp + 8]
call fcn.004027c0
mov dword [ebp + 8], eax
mov ecx, edi
lea eax, [esi + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x412f21
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp + 8]
add eax, 0x10
mov dword [ebx + 0x40], eax
jmp 0x412f35
push dword [edx - 0xc]
push edx
call fcn.00402690
mov byte [ebp - 4], 0x54
mov edx, dword [ebp - 0x2c]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x412f55
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x2d
mov edx, dword [ebp - 0x28]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x412f75
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push ecx
mov ecx, esp
mov dword [ebp + 8], esp
push str.4701061b1c0904040d1a0e1d04041e0d1a1b01070655
call fcn.004024a0
mov byte [ebp - 4], 0x58
mov byte [ebp - 4], 0x2d
lea ecx, [ebp - 0x28]
call fcn.00421160
add esp, 4
mov byte [ebp - 4], 0x59
push eax
lea eax, [ebp - 0x2c]
push eax
mov ecx, ebx
call fcn.004120e0
mov byte [ebp - 4], 0x5a
mov edx, dword [eax]
mov esi, dword [ebx + 0x44]
lea ecx, [ebx + 0x44]
lea eax, [edx - 0x10]
sub esi, 0x10
mov dword [ebp + 8], eax
cmp eax, esi
je 0x413002
cmp dword [esi + 0xc], 0
jl 0x412ff9
mov eax, dword [eax]
cmp eax, dword [esi]
jne 0x412ff9
mov ecx, dword [ebp + 8]
call fcn.004027c0
mov dword [ebp + 8], eax
mov ecx, edi
lea eax, [esi + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x412fee
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp + 8]
add eax, 0x10
mov dword [ebx + 0x44], eax
jmp 0x413002
push dword [edx - 0xc]
push edx
call fcn.00402690
mov byte [ebp - 4], 0x59
mov edx, dword [ebp - 0x2c]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x413022
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x2d
mov edx, dword [ebp - 0x28]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x413042
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push ecx
mov ecx, esp
mov dword [ebp + 8], esp
push str.4701061b1c090404091c0107061c01050d55
call fcn.004024a0
mov byte [ebp - 4], 0x5d
mov byte [ebp - 4], 0x2d
lea ecx, [ebp - 0x28]
call fcn.00421160
add esp, 4
mov byte [ebp - 4], 0x5e
push eax
lea eax, [ebp - 0x2c]
push eax
mov ecx, ebx
call fcn.004120e0
mov byte [ebp - 4], 0x5f
mov edx, dword [eax]
mov esi, dword [ebx + 0x48]
lea ecx, [ebx + 0x48]
lea eax, [edx - 0x10]
sub esi, 0x10
mov dword [ebp + 8], eax
cmp eax, esi
je 0x4130cf
cmp dword [esi + 0xc], 0
jl 0x4130c6
mov eax, dword [eax]
cmp eax, dword [esi]
jne 0x4130c6
mov ecx, dword [ebp + 8]
call fcn.004027c0
mov dword [ebp + 8], eax
mov ecx, edi
lea eax, [esi + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4130bb
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp + 8]
add eax, 0x10
mov dword [ebx + 0x48], eax
jmp 0x4130cf
push dword [edx - 0xc]
push edx
call fcn.00402690
mov byte [ebp - 4], 0x5e
mov edx, dword [ebp - 0x2c]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4130ef
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x2d
mov edx, dword [ebp - 0x28]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x41310f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push ecx
mov ecx, esp
mov dword [ebp + 8], esp
push str.471b1a0b010c55
call fcn.004024a0
mov byte [ebp - 4], 0x62
mov byte [ebp - 4], 0x2d
lea ecx, [ebp - 0x28]
call fcn.00421160
add esp, 4
mov byte [ebp - 4], 0x63
push eax
lea eax, [ebp - 0x2c]
push eax
mov ecx, ebx
call fcn.004120e0
mov byte [ebp - 4], 0x64
mov edx, dword [eax]
mov esi, dword [ebx + 0x4c]
lea ecx, [ebx + 0x4c]
lea eax, [edx - 0x10]
sub esi, 0x10
mov dword [ebp + 8], eax
cmp eax, esi
je 0x41319c
cmp dword [esi + 0xc], 0
jl 0x413193
mov eax, dword [eax]
cmp eax, dword [esi]
jne 0x413193
mov ecx, dword [ebp + 8]
call fcn.004027c0
mov dword [ebp + 8], eax
mov ecx, edi
lea eax, [esi + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x413188
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp + 8]
add eax, 0x10
mov dword [ebx + 0x4c], eax
jmp 0x41319c
push dword [edx - 0xc]
push edx
call fcn.00402690
mov byte [ebp - 4], 0x63
mov edx, dword [ebp - 0x2c]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4131bc
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x2d
mov edx, dword [ebp - 0x28]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4131dc
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push ecx
mov ecx, esp
mov dword [ebp + 8], esp
push str.471b1d0a010c55
call fcn.004024a0
mov byte [ebp - 4], 0x67
mov byte [ebp - 4], 0x2d
lea ecx, [ebp - 0x28]
call fcn.00421160
add esp, 4
mov byte [ebp - 4], 0x68
push eax
lea eax, [ebp - 0x2c]
push eax
mov ecx, ebx
call fcn.004120e0
mov byte [ebp - 4], 0x69
mov edx, dword [eax]
mov esi, dword [ebx + 0x50]
lea ecx, [ebx + 0x50]
lea eax, [edx - 0x10]
sub esi, 0x10
mov dword [ebp + 8], eax
cmp eax, esi
je 0x413269
cmp dword [esi + 0xc], 0
jl 0x413260
mov eax, dword [eax]
cmp eax, dword [esi]
jne 0x413260
mov ecx, dword [ebp + 8]
call fcn.004027c0
mov dword [ebp + 8], eax
mov ecx, edi
lea eax, [esi + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x413255
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp + 8]
add eax, 0x10
mov dword [ebx + 0x50], eax
jmp 0x413269
push dword [edx - 0xc]
push edx
call fcn.00402690
mov byte [ebp - 4], 0x68
mov edx, dword [ebp - 0x2c]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x413289
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x2d
mov edx, dword [ebp - 0x28]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4132a9
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push ecx
mov ecx, esp
mov dword [ebp + 8], esp
push str.47120c091c0955
call fcn.004024a0
mov byte [ebp - 4], 0x6c
mov byte [ebp - 4], 0x2d
lea ecx, [ebp - 0x28]
call fcn.00421160
add esp, 4
mov byte [ebp - 4], 0x6d
push eax
lea eax, [ebp - 0x2c]
push eax
mov ecx, ebx
call fcn.004120e0
mov byte [ebp - 4], 0x6e
mov edx, dword [eax]
mov esi, dword [ebx + 0x54]
lea ecx, [ebx + 0x54]
lea eax, [edx - 0x10]
sub esi, 0x10
mov dword [ebp + 8], eax
cmp eax, esi
je 0x413336
cmp dword [esi + 0xc], 0
jl 0x41332d
mov eax, dword [eax]
cmp eax, dword [esi]
jne 0x41332d
mov ecx, dword [ebp + 8]
call fcn.004027c0
mov dword [ebp + 8], eax
mov ecx, edi
lea eax, [esi + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x413322
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp + 8]
add eax, 0x10
mov dword [ebx + 0x54], eax
jmp 0x413336
push dword [edx - 0xc]
push edx
call fcn.00402690
mov byte [ebp - 4], 0x6d
mov edx, dword [ebp - 0x2c]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x413356
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x2d
mov edx, dword [ebp - 0x28]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x413376
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push ecx
mov ecx, esp
mov dword [ebp + 8], esp
push str.471b1c091c1b0c070509010655
call fcn.004024a0
mov byte [ebp - 4], 0x71
mov byte [ebp - 4], 0x2d
lea ecx, [ebp - 0x28]
call fcn.00421160
add esp, 4
mov byte [ebp - 4], 0x72
push eax
lea eax, [ebp - 0x2c]
push eax
mov ecx, ebx
call fcn.004120e0
mov byte [ebp - 4], 0x73
mov edx, dword [eax]
mov esi, dword [ebx + 0x5c]
lea ecx, [ebx + 0x5c]
lea eax, [edx - 0x10]
sub esi, 0x10
mov dword [ebp + 8], eax
cmp eax, esi
je 0x413403
cmp dword [esi + 0xc], 0
jl 0x4133fa
mov eax, dword [eax]
cmp eax, dword [esi]
jne 0x4133fa
mov ecx, dword [ebp + 8]
call fcn.004027c0
mov dword [ebp + 8], eax
mov ecx, edi
lea eax, [esi + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4133ef
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp + 8]
add eax, 0x10
mov dword [ebx + 0x5c], eax
jmp 0x413403
push dword [edx - 0xc]
push edx
call fcn.00402690
mov byte [ebp - 4], 0x72
mov edx, dword [ebp - 0x2c]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x413423
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x2d
mov edx, dword [ebp - 0x28]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x413443
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push ecx
mov ecx, esp
mov dword [ebp + 8], esp
push str.470d1a1a071a1b0c070509010655
call fcn.004024a0
mov byte [ebp - 4], 0x76
mov byte [ebp - 4], 0x2d
lea ecx, [ebp - 0x28]
call fcn.00421160
add esp, 4
mov byte [ebp - 4], 0x77
push eax
lea eax, [ebp - 0x2c]
push eax
mov ecx, ebx
call fcn.004120e0
mov byte [ebp - 4], 0x78
mov edx, dword [eax]
mov esi, dword [ebx + 0x64]
lea ecx, [ebx + 0x64]
lea eax, [edx - 0x10]
sub esi, 0x10
mov dword [ebp + 8], eax
cmp eax, esi
je 0x4134d0
cmp dword [esi + 0xc], 0
jl 0x4134c7
mov eax, dword [eax]
cmp eax, dword [esi]
jne 0x4134c7
mov ecx, dword [ebp + 8]
call fcn.004027c0
mov dword [ebp + 8], eax
mov ecx, edi
lea eax, [esi + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4134bc
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp + 8]
add eax, 0x10
mov dword [ebx + 0x64], eax
jmp 0x4134d0
push dword [edx - 0xc]
push edx
call fcn.00402690
mov byte [ebp - 4], 0x77
mov edx, dword [ebp - 0x2c]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4134f0
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x2d
mov edx, dword [ebp - 0x28]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x413510
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push ecx
mov ecx, esp
mov dword [ebp + 8], esp
push str.470507060d1c0112091c0107060c070509010655
call fcn.004024a0
mov byte [ebp - 4], 0x7b
mov byte [ebp - 4], 0x2d
lea ecx, [ebp - 0x28]
call fcn.00421160
add esp, 4
mov byte [ebp - 4], 0x7c
push eax
lea eax, [ebp - 0x2c]
push eax
mov ecx, ebx
call fcn.004120e0
mov byte [ebp - 4], 0x7d
mov edx, dword [eax]
mov esi, dword [ebx + 0x60]
lea ecx, [ebx + 0x60]
lea eax, [edx - 0x10]
sub esi, 0x10
mov dword [ebp + 8], eax
cmp eax, esi
je 0x41359d
cmp dword [esi + 0xc], 0
jl 0x413594
mov eax, dword [eax]
cmp eax, dword [esi]
jne 0x413594
mov ecx, dword [ebp + 8]
call fcn.004027c0
mov dword [ebp + 8], eax
mov ecx, edi
lea eax, [esi + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x413589
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp + 8]
add eax, 0x10
mov dword [ebx + 0x60], eax
jmp 0x41359d
push dword [edx - 0xc]
push edx
call fcn.00402690
mov byte [ebp - 4], 0x7c
mov edx, dword [ebp - 0x2c]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4135bd
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x2d
mov edx, dword [ebp - 0x28]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4135dd
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push ecx
mov ecx, esp
mov dword [ebp - 0x2c], esp
push str.470904041d1b0d1a1b
call fcn.004024a0
mov byte [ebp - 4], 0x80
mov byte [ebp - 4], 0x2d
lea ecx, [ebp + 8]
call fcn.00421160
add esp, 4
mov byte [ebp - 4], 0x81
mov ecx, dword [eax]
test ecx, ecx
jne 0x41360f
or eax, 0xffffffff
jmp 0x413635
mov eax, dword [ebx + 0x10]
cmp dword [eax - 0xc], 0
jge 0x41361d
or eax, 0xffffffff
jmp 0x413635
push ecx
push eax
call fcn.004aa70f
add esp, 8
test eax, eax
jne 0x413630
or eax, 0xffffffff
jmp 0x413635
sub eax, dword [ebx + 0x10]
sar eax, 1
test eax, eax
setns al
mov byte [ebx + 0x18], al
mov byte [ebp - 4], 0x2d
mov edx, dword [ebp + 8]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x41365d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push ecx
mov ecx, esp
mov dword [ebp + 8], esp
push str.471a1d060e1a0705
call fcn.004024a0
mov byte [ebp - 4], 0x83
mov byte [ebp - 4], 0x2d
lea ecx, [ebp - 0x28]
call fcn.00421160
add esp, 4
mov byte [ebp - 4], 0x84
push eax
lea eax, [ebp - 0x2c]
push eax
mov ecx, ebx
call fcn.004120e0
mov byte [ebp - 4], 0x85
mov edx, dword [eax]
mov esi, dword [ebx + 0x70]
lea ecx, [edx - 0x10]
sub esi, 0x10
cmp ecx, esi
je 0x4136e4
cmp dword [esi + 0xc], 0
jl 0x4136d8
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x4136d8
call fcn.004027c0
mov dword [ebp + 8], eax
mov ecx, edi
lea edx, [esi + 0xc]
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4136d0
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp + 8]
add eax, 0x10
mov dword [ebx + 0x70], eax
jmp 0x4136e4
push dword [edx - 0xc]
lea ecx, [ebx + 0x70]
push edx
call fcn.00402690
mov byte [ebp - 4], 0x84
mov edx, dword [ebp - 0x2c]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x413704
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x2d
mov edx, dword [ebp - 0x28]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x413724
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push ecx
mov ecx, esp
mov dword [ebp + 8], esp
push str.470c0d0e0a1a0755
call fcn.004024a0
mov byte [ebp - 4], 0x88
mov byte [ebp - 4], 0x2d
lea ecx, [ebp - 0x28]
call fcn.00421160
add esp, 4
mov byte [ebp - 4], 0x89
push eax
lea eax, [ebp - 0x2c]
push eax
mov ecx, ebx
call fcn.004120e0
mov byte [ebp - 4], 0x8a
mov edx, dword [eax]
mov esi, dword [ebx + 0x58]
lea ecx, [ebx + 0x58]
lea eax, [edx - 0x10]
sub esi, 0x10
mov dword [ebp + 8], eax
cmp eax, esi
je 0x4137b2
cmp dword [esi + 0xc], 0
jl 0x4137a9
mov eax, dword [edx - 0x10]
cmp eax, dword [esi]
jne 0x4137a9
mov ecx, dword [ebp + 8]
call fcn.004027c0
mov dword [ebp + 8], eax
mov ecx, edi
lea edx, [esi + 0xc]
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4137a1
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp + 8]
add eax, 0x10
mov dword [ebx + 0x58], eax
jmp 0x4137b2
push dword [edx - 0xc]
push edx
call fcn.00402690
mov byte [ebp - 4], 0x89
mov edx, dword [ebp - 0x2c]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4137d2
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x2d
mov edx, dword [ebp - 0x28]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4137f2
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push ecx
mov ecx, esp
mov dword [ebp - 0x30], esp
push str.47011b0906110955
call fcn.004024a0
mov byte [ebp - 4], 0x8d
mov byte [ebp - 4], 0x2d
lea ecx, [ebp - 0x18]
call fcn.00421160
add esp, 4
mov byte [ebp - 4], 0x8e
mov ecx, dword [ebp - 0x10]
or ecx, 4
push eax
lea eax, [ebp - 0x28]
mov dword [ebp - 0x10], ecx
push eax
mov ecx, ebx
call fcn.004120e0
mov dword [ebp - 4], 0x8f
mov edx, dword [ebp - 0x10]
or edx, 8
mov dword [ebp - 0x10], edx
mov eax, dword [eax]
mov ecx, 0x510724
mov si, word [eax]
cmp si, word [ecx]
jne 0x41386b
test si, si
je 0x413867
mov si, word [eax + 2]
cmp si, word [ecx + 2]
jne 0x41386b
add eax, 4
add ecx, 4
test si, si
jne 0x413845
xor eax, eax
jmp 0x413870
sbb eax, eax
or eax, 1
test eax, eax
je 0x413904
push ecx
mov ecx, esp
mov dword [ebp - 0x30], esp
push str.47011b0906110955
call fcn.004024a0
mov dword [ebp - 4], 0x90
mov byte [ebp - 4], 0x8f
lea ecx, [ebp - 0x2c]
call fcn.00421160
add esp, 4
mov dword [ebp - 4], 0x91
mov ecx, dword [ebp - 0x10]
or ecx, 0x10
push eax
lea eax, [ebp + 8]
mov dword [ebp - 0x10], ecx
push eax
mov ecx, ebx
call fcn.004120e0
mov dword [ebp - 4], 0x92
mov edx, dword [ebp - 0x10]
or edx, 0x20
mov dword [ebp - 0x10], edx
mov eax, dword [eax]
mov ecx, 0x510754
mov si, word [eax]
cmp si, word [ecx]
jne 0x4138f7
test si, si
je 0x4138f3
mov si, word [eax + 2]
cmp si, word [ecx + 2]
jne 0x4138f7
add eax, 4
add ecx, 4
test si, si
jne 0x4138d1
xor eax, eax
jmp 0x4138fc
sbb eax, eax
or eax, 1
test eax, eax
je 0x413904
xor eax, eax
jmp 0x413909
mov eax, 1
mov byte [ebx + 0x8d], al
mov dword [ebp - 4], 0x91
test dl, 0x20
je 0x413947
and edx, 0xffffffdf
mov dword [ebp - 0x10], edx
mov dword [ebp - 4], 0x91
mov esi, dword [ebp + 8]
add esi, 0xfffffff0
mov ecx, edi
lea eax, [esi + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x413947
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x10]
mov dword [ebp - 4], 0x8f
test dl, 0x10
je 0x41397f
and edx, 0xffffffef
mov dword [ebp - 0x10], edx
mov dword [ebp - 4], 0x8f
mov esi, dword [ebp - 0x2c]
add esi, 0xfffffff0
mov ecx, edi
lea eax, [esi + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x41397f
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x10]
mov dword [ebp - 4], 0x8e
test dl, 8
je 0x4139b7
and edx, 0xfffffff7
mov dword [ebp - 0x10], edx
mov dword [ebp - 4], 0x8e
mov esi, dword [ebp - 0x28]
add esi, 0xfffffff0
mov ecx, edi
lea eax, [esi + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4139b7
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x10]
mov dword [ebp - 4], 0x2d
test dl, 4
je 0x4139e9
and edx, 0xfffffffb
mov dword [ebp - 0x10], edx
mov byte [ebp - 4], 0x2d
mov edx, dword [ebp - 0x18]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4139e9
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push ecx
mov ecx, esp
mov dword [ebp + 8], esp
push 0x510758
call fcn.004024a0
mov byte [ebp - 4], 0x97
mov byte [ebp - 4], 0x2d
lea ecx, [ebp - 0x28]
call fcn.00421160
add esp, 4
mov byte [ebp - 4], 0x98
push eax
lea eax, [ebp - 0x2c]
push eax
mov ecx, ebx
call fcn.004120e0
mov byte [ebp - 4], 0x99
mov edx, dword [eax]
mov esi, dword [ebx + 0x78]
lea ecx, [ebx + 0x78]
lea eax, [edx - 0x10]
sub esi, 0x10
mov dword [ebp + 8], eax
cmp eax, esi
je 0x413a76
cmp dword [esi + 0xc], 0
jl 0x413a6d
mov eax, dword [eax]
cmp eax, dword [esi]
jne 0x413a6d
mov ecx, dword [ebp + 8]
call fcn.004027c0
mov dword [ebp + 8], eax
mov ecx, edi
lea eax, [esi + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x413a62
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp + 8]
add eax, 0x10
mov dword [ebx + 0x78], eax
jmp 0x413a76
push dword [edx - 0xc]
push edx
call fcn.00402690
mov byte [ebp - 4], 0x98
mov edx, dword [ebp - 0x2c]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x413a96
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x2d
mov edx, dword [ebp - 0x28]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x413ab6
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push ecx
mov ecx, esp
mov dword [ebp - 0x30], esp
push str.470c07061c091d1c070d06090a040d
call fcn.004024a0
mov byte [ebp - 4], 0x9c
mov byte [ebp - 4], 0x2d
lea ecx, [ebp + 8]
call fcn.00421160
add esp, 4
mov byte [ebp - 4], 0x9d
mov ecx, dword [eax]
lea esi, [ebx + 0x10]
test ecx, ecx
jne 0x413aeb
or eax, 0xffffffff
jmp 0x413b0f
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
jge 0x413af8
or eax, 0xffffffff
jmp 0x413b0f
push ecx
push eax
call fcn.004aa70f
add esp, 8
test eax, eax
jne 0x413b0b
or eax, 0xffffffff
jmp 0x413b0f
sub eax, dword [esi]
sar eax, 1
test eax, eax
setns al
mov byte [ebx + 0x80], al
mov byte [ebp - 4], 0x2d
mov edx, dword [ebp + 8]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x413b3a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push ecx
mov ecx, esp
mov dword [ebp - 0x30], esp
push str.470c041c090e1c01061b1c
call fcn.004024a0
mov byte [ebp - 4], 0x9f
mov byte [ebp - 4], 0x2d
lea ecx, [ebp + 8]
call fcn.00421160
add esp, 4
mov byte [ebp - 4], 0xa0
mov ecx, dword [eax]
test ecx, ecx
jne 0x413b6c
or eax, 0xffffffff
jmp 0x413b90
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
jge 0x413b79
or eax, 0xffffffff
jmp 0x413b90
push ecx
push eax
call fcn.004aa70f
add esp, 8
test eax, eax
jne 0x413b8c
or eax, 0xffffffff
jmp 0x413b90
sub eax, dword [esi]
sar eax, 1
test eax, eax
setns al
mov byte [ebx + 0x81], al
mov byte [ebp - 4], 0x2d
mov edx, dword [ebp + 8]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x413bbb
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push ecx
mov ecx, esp
mov dword [ebp + 8], esp
push str.470c041c1c1b03090e1c01061b1c
call fcn.004024a0
mov byte [ebp - 4], 0xa2
mov byte [ebp - 4], 0x2d
lea ecx, [ebp - 0x28]
call fcn.00421160
add esp, 4
mov byte [ebp - 4], 0xa3
push eax
lea eax, [ebp - 0x2c]
push eax
mov ecx, ebx
call fcn.004120e0
mov byte [ebp - 4], 0xa4
mov edx, dword [eax]
mov esi, dword [ebx + 0x84]
lea ecx, [ebx + 0x84]
lea eax, [edx - 0x10]
sub esi, 0x10
mov dword [ebp + 8], eax
cmp eax, esi
je 0x413c51
cmp dword [esi + 0xc], 0
jl 0x413c48
mov eax, dword [eax]
cmp eax, dword [esi]
jne 0x413c48
mov ecx, dword [ebp + 8]
call fcn.004027c0
mov dword [ebp + 8], eax
mov ecx, edi
lea eax, [esi + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x413c3a
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp + 8]
add eax, 0x10
mov dword [ebx + 0x84], eax
jmp 0x413c51
push dword [edx - 0xc]
push edx
call fcn.00402690
mov byte [ebp - 4], 0xa3
mov edx, dword [ebp - 0x2c]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x413c71
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x2d
mov edx, dword [ebp - 0x28]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x413c91
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push ecx
mov ecx, esp
mov dword [ebp - 0x30], esp
push str.471b010c55
call fcn.004024a0
mov byte [ebp - 4], 0xa7
mov byte [ebp - 4], 0x2d
lea ecx, [ebp - 0x2c]
call fcn.00421160
add esp, 4
mov byte [ebp - 4], 0xa8
push eax
lea eax, [ebp + 8]
push eax
mov ecx, ebx
call fcn.004120e0
mov byte [ebp - 4], 0xa9
push eax
lea ecx, [ebx + 0x6c]
call fcn.004025b0
mov byte [ebp - 4], 0xa8
mov edx, dword [ebp + 8]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x413cf1
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x2d
mov edx, dword [ebp - 0x2c]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x413d11
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push ecx
mov ecx, esp
mov dword [ebp - 0x30], esp
push str.47090c0c01060e07021b070655
call fcn.004024a0
mov byte [ebp - 4], 0xac
mov byte [ebp - 4], 0x2d
lea ecx, [ebp - 0x2c]
call fcn.00421160
add esp, 4
mov byte [ebp - 4], 0xad
push eax
lea eax, [ebp + 8]
push eax
mov ecx, ebx
call fcn.004120e0
mov byte [ebp - 4], 0xae
push eax
lea ecx, [ebx + 0x7c]
call fcn.004025b0
mov byte [ebp - 4], 0xad
mov edx, dword [ebp + 8]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x413d71
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x2d
mov edx, dword [ebp - 0x2c]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x413d91
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebx]
lea ecx, [ebp - 0x14]
push ecx
mov ecx, ebx
call dword [eax + 0xc]
mov byte [ebp - 4], 0xb1
mov eax, dword [ebp - 0x14]
cmp dword [eax - 0xc], 0
je 0x41405d
push ecx
mov ecx, esp
mov dword [ebp + 8], esp
push str.1c091b03
call fcn.004024a0
mov byte [ebp - 4], 0xb2
mov byte [ebp - 4], 0xb1
lea ecx, [ebp - 0x2c]
call fcn.00421160
add esp, 4
mov byte [ebp - 4], 0xb3
mov edx, eax
lea eax, [ebx + 0x70]
mov ecx, eax
call fcn.004175d0
mov byte [ebp + 0xb], al
mov byte [ebp - 4], 0xb1
mov esi, dword [ebp - 0x2c]
add esi, 0xfffffff0
mov edx, edi
lea ecx, [esi + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x413e06
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov al, byte [ebp + 0xb]
mov esi, 0x1f40
test al, al
je 0x413e24
call fcn.004aa2d7
cdq
idiv esi
add edx, 0x7d0
push edx
call dword [sym.imp.KERNEL32.dll_Sleep]
push dword [ebp - 0x14]
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov dword [ebx + 0x14], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x413fe6
mov eax, dword [ebx + 0x14]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
test eax, eax
je 0x413e55
push eax
call esi
call fcn.004aa2d7
cdq
mov ecx, 0x1f40
idiv ecx
add edx, 0x7d0
push edx
call dword [sym.imp.KERNEL32.dll_Sleep]
push dword [ebp - 0x14]
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov dword [ebx + 0x14], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x413f7d
mov eax, dword [ebx + 0x14]
test eax, eax
je 0x413ea1
push eax
call esi
mov dword [ebx + 0x14], 0
push ecx
mov ecx, esp
mov dword [ebp - 0x30], esp
push str.1c091b03
call fcn.004024a0
mov byte [ebp - 4], 0xb5
mov byte [ebp - 4], 0xb1
lea ecx, [ebp + 8]
call fcn.00421160
add esp, 4
mov byte [ebp - 4], 0xb6
mov edx, eax
lea ecx, [ebx + 0x70]
call fcn.004175d0
mov bl, al
mov byte [ebp - 4], 0xb1
lea ecx, [ebp + 8]
call fcn.00402550
test bl, bl
je 0x41405d
push ecx
mov ecx, esp
mov dword [ebp - 0x30], esp
push str.1a0d090c11370d10011b1c1b
call fcn.004024a0
mov byte [ebp - 4], 0xb7
mov byte [ebp - 4], 0xb1
lea ecx, [ebp - 0x28]
call fcn.00421160
add esp, 4
mov byte [ebp - 4], 0xb8
push eax
push ecx
mov ecx, esp
mov dword [ebp - 0x30], esp
push str.051d1c0d10370904
call fcn.004024a0
mov byte [ebp - 4], 0xb9
mov byte [ebp - 4], 0xb8
lea ecx, [ebp - 0x2c]
call fcn.00421160
add esp, 4
mov byte [ebp - 4], 0xba
mov edx, eax
lea ecx, [ebp + 8]
call fcn.0040e9b0
add esp, 4
mov byte [ebp - 4], 0xbb
mov ecx, dword [ebp - 0x1c]
push eax
call fcn.004140e0
mov byte [ebp - 4], 0xba
lea ecx, [ebp + 8]
call fcn.00402550
mov byte [ebp - 4], 0xb8
lea ecx, [ebp - 0x2c]
call fcn.00402550
mov byte [ebp - 4], 0xb1
lea ecx, [ebp - 0x28]
call fcn.00402550
or ebx, 0xffffffff
jmp 0x41405f
cmp dword [ebx + 0x14], 0
jne 0x41405d
lea ecx, [ebp - 0x28]
call fcn.00420690
mov byte [ebp - 4], 0xbc
push eax
push ecx
mov ecx, esp
mov dword [ebp - 0x30], esp
push str.0b1a0d091c0d37051d1c0d1037
call fcn.004024a0
mov byte [ebp - 4], 0xbd
mov byte [ebp - 4], 0xbc
lea ecx, [ebp - 0x2c]
call fcn.00421160
add esp, 4
mov byte [ebp - 4], 0xbe
mov edx, eax
lea ecx, [ebp + 8]
call fcn.0041bef0
add esp, 4
mov byte [ebp - 4], 0xbf
push eax
mov ecx, ebx
call fcn.004140e0
mov byte [ebp - 4], 0xbe
lea ecx, [ebp + 8]
call fcn.00402550
mov byte [ebp - 4], 0xbc
jmp 0x414049
cmp dword [ebx + 0x14], 0
jne 0x41405d
lea ecx, [ebp - 0x28]
call fcn.00420690
mov byte [ebp - 4], 0xc0
push eax
push ecx
mov ecx, esp
mov dword [ebp - 0x30], esp
push str.0b1a0d091c0d37051d1c0d1037
call fcn.004024a0
mov byte [ebp - 4], 0xc1
mov byte [ebp - 4], 0xc0
lea ecx, [ebp - 0x2c]
call fcn.00421160
add esp, 4
mov byte [ebp - 4], 0xc2
mov edx, eax
lea ecx, [ebp + 8]
call fcn.0041bef0
add esp, 4
mov byte [ebp - 4], 0xc3
push eax
mov ecx, ebx
call fcn.004140e0
mov byte [ebp - 4], 0xc2
lea ecx, [ebp + 8]
call fcn.00402550
mov byte [ebp - 4], 0xc0
lea ecx, [ebp - 0x2c]
call fcn.00402550
mov byte [ebp - 4], 0xb1
lea ecx, [ebp - 0x28]
call fcn.00402550
xor ebx, ebx
mov byte [ebp - 4], 0x2d
mov edx, dword [ebp - 0x14]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x41407f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0xc
mov edx, dword [ebp - 0x20]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x41409f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 4], 0xffffffff
mov esi, dword [ebp - 0x24]
add esi, 0xfffffff0
lea eax, [esi + 0xc]
lock xadd dword [eax], edi
dec edi
test edi, edi
jg 0x4140c0
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4