Function at 0x46edb0
Capabilities:
Hash data using sha1

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x254
mov eax, dword [0x51e080]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x14]
push ebx
mov ebx, dword [ebp + 0x18]
push esi
mov esi, dword [ebp + 8]
mov dword [ebp - 0x208], eax
mov eax, dword [ebp + 0x1c]
mov dword [ebp - 0x21c], esi
mov dword [ebp - 0x220], ebx
mov dword [ebp - 0x218], eax
push edi
mov edi, ecx
mov dword [ebp - 0x20c], edi
test esi, esi
je 0x46fb57
test ebx, ebx
je 0x46fb57
test eax, eax
je 0x46fb57
lea eax, [edi + 0x1c]
mov dword [ebp - 0x1dc], 0
push eax
mov dword [ebp - 0x228], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [edi + 0x14]
lea edx, [ebp - 0x1e8]
push edx
mov ecx, dword [eax + 0x49c]
mov eax, dword [edi + 0x34]
push dword [eax + 0x9c]
add eax, 0x10
push eax
push esi
call fcn.004a73f0
mov esi, eax
test esi, esi
jne 0x46eeaf
mov ecx, dword [edi + 0x34]
push eax
push dword [ebp - 0x1e8]
push dword [ecx + 0x9c]
call fcn.004ace30
test eax, eax
jne 0x46eeaf
mov eax, dword [edi + 0x34]
mov edx, dword [eax + 0x9c]
cmp dword [edx], 1
jne 0x46eeaf
mov eax, dword [edx + 4]
add eax, 4
lea ecx, [edx + eax*2]
mov eax, dword [ecx + 4]
add eax, dword [ecx]
mov eax, dword [ecx + eax*2 + 0xc]
mov dword [ebp - 0x1dc], eax
lea eax, [ebp - 0x204]
push eax
push ecx
push edx
call fcn.004abd50
mov eax, dword [ebp - 0x204]
test eax, eax
je 0x46eeaa
test byte [eax + 0x16], 1
jne 0x46eeaf
mov esi, 1
mov eax, dword [edi + 0x14]
test byte [eax + 0x244], 4
je 0x46ef38
push ebx
call fcn.004e2502
fstp qword [ebp - 0x1f8]
movsd xmm0, qword [ebp - 0x1f8]
add esp, 4
ucomisd xmm0, qword [0x513a20]
lahf
test ah, 0x44
jp 0x46ef1e
mov ecx, dword [edi + 0x68]
call fcn.00409ee0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x513d40]
mulsd xmm0, qword [0x513a38]
mulsd xmm0, qword [0x513c60]
call fcn.004f3af0
add eax, 0x7080
mov dword [ebp - 0x204], eax
jmp 0x46ef42
mulsd xmm0, qword [0x513c48]
xor eax, eax
mov word [ebx], ax
call fcn.004f3af0
mov dword [ebp - 0x204], eax
jmp 0x46ef42
mov dword [ebp - 0x204], 0
lea eax, [edi + 0x1c]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test esi, esi
jne 0x46fb57
cmp dword [ebp + 0x10], esi
je 0x46f057
push 0x22
mov dword [ebp - 0x1e0], 1
mov dword [ebp - 0x214], esi
call fcn.004d9a7e
add esp, 4
mov ebx, eax
push 0x28
call fcn.004d9a7e
add esp, 4
mov esi, eax
mov dword [ebp - 0x1fc], esi
push 0x28
call fcn.004d9a7e
mov ecx, dword [edi + 0x14]
add esp, 4
mov dword [ebp - 0x200], eax
mov ecx, dword [ecx + 0x4ec]
push eax
push esi
push ebx
call fcn.004796d0
test eax, eax
jne 0x46efda
mov eax, dword [edi + 0x14]
push ecx
push esi
push ebx
lea ecx, [ebp - 0x1e4]
mov dword [ebp - 0x1e4], 0x32
push ecx
lea ecx, [ebp - 0x70]
push ecx
mov ecx, dword [eax + 0x4ec]
call fcn.004797e0
test eax, eax
je 0x46eff5
mov esi, 1
test ebx, ebx
je 0x46fb1c
push ebx
call fcn.004d9a63
add esp, 4
jmp 0x46fb1c
mov eax, dword [ebp - 0x1e4]
inc eax
push ebx
mov dword [ebp - 0x1ec], eax
call fcn.004d9a63
mov ebx, dword [ebp - 0x220]
add esp, 4
mov ecx, ebx
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x46f016
sub ecx, edx
sar ecx, 1
lea edx, [ecx + 1]
mov ecx, dword [ebp - 0x218]
mov dword [ebp - 0x1e8], edx
lea esi, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x46f037
sub ecx, esi
mov esi, 1
sar ecx, 1
inc ecx
mov dword [ebp - 0x1e4], ecx
jmp 0x46f165
mov eax, dword [ebp - 0x208]
mov dword [ebp - 0x1e0], 0
mov dword [ebp - 0x1fc], 0
mov dword [ebp - 0x200], 0
test eax, eax
je 0x46f10f
mov ecx, eax
lea edx, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x46f090
sub ecx, edx
sar ecx, 1
lea ebx, [ecx + 1]
mov ecx, dword [ebp - 0x220]
mov dword [ebp - 0x214], ebx
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x46f0b1
sub ecx, edx
sar ecx, 1
lea edx, [ecx + 1]
mov ecx, dword [ebp - 0x218]
mov dword [ebp - 0x1e8], edx
lea esi, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x46f0d2
sub ecx, esi
xor eax, eax
sar ecx, 1
xor esi, esi
inc ecx
mov dword [ebp - 0x1e0], esi
mov dword [ebp - 0x1e4], ecx
mov dword [ebp - 0x1fc], eax
mov dword [ebp - 0x200], eax
cmp ebx, 0x40
ja 0x46fb17
mov ebx, dword [ebp - 0x220]
jmp 0x46f159
mov ecx, ebx
mov dword [ebp - 0x214], 0
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x46f120
sub ecx, edx
sar ecx, 1
lea edx, [ecx + 1]
mov ecx, dword [ebp - 0x218]
mov dword [ebp - 0x1e8], edx
lea esi, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x46f141
sub ecx, esi
sar ecx, 1
inc ecx
xor esi, esi
mov dword [ebp - 0x1e4], ecx
mov eax, dword [ebp - 0x1e4]
mov dword [ebp - 0x1ec], eax
cmp edx, 0x40
ja 0x46fb17
cmp ecx, 0x800
ja 0x46fb17
mov ecx, dword [ebp - 0x208]
test ecx, ecx
je 0x46f19b
mov eax, dword [edi + 0x14]
lea edx, [ebp - 0x214]
push dword [eax + 0x32c]
call fcn.00452270
add esp, 4
mov eax, dword [edi + 0x14]
lea edx, [ebp - 0x1e8]
mov ecx, ebx
push dword [eax + 0x32c]
call fcn.00452270
mov eax, dword [edi + 0x14]
lea edx, [ebp - 0x1e4]
mov ecx, dword [ebp - 0x218]
add esp, 4
push dword [eax + 0x32c]
call fcn.00452270
mov ebx, dword [edi + 0x48]
xor ecx, ecx
add esp, 4
mov dword [ebx + 8], esi
lea edx, [ecx + 4]
mov esi, dword [ebp - 0x21c]
mov dword [ebx], 0x7d1
mov dword [ebx + 4], 0
add ebx, 0xc
xor eax, eax
mov eax, dword [esi + eax]
inc ecx
mov dword [ebx], eax
mov eax, edx
add ebx, 4
add edx, 4
cmp ecx, 8
jb 0x46f1f4
xorps xmm0, xmm0
movups xmmword [ebx], xmm0
movups xmmword [ebx + 0x10], xmm0
mov dword [ebx + 0x20], 0
mov dword [ebx + 0x24], 0
add ebx, 0x28
mov eax, dword [edi + 0x14]
mov dword [ebp - 0x210], ebx
mov eax, dword [eax + 0x28c]
and eax, 0xffff0000
test byte [ebp - 0x1dc], 1
mov dword [ebp - 0x224], eax
mov dword [ebx], eax
je 0x46f253
mov dword [ebx + 4], 0
jmp 0x46f58b
mov eax, dword [edi + 0x14]
xor ecx, ecx
mov dword [ebp - 0xc0], 0
mov ebx, 0x20
mov dword [ebp - 0xd8], 0x67452301
mov edi, esi
mov dword [ebp - 0xd4], 0xefcdab89
mov dword [ebp - 0xd0], 0x98badcfe
mov dword [ebp - 0xcc], 0x10325476
mov dword [ebp - 0xc8], 0xc3d2e1f0
mov dword [ebp - 0x78], ecx
mov eax, dword [eax + 0x480]
mov dword [ebp - 0x1dc], eax
mov dword [ebp - 0xc4], ebx
mov eax, 0x40
mov esi, ebx
sub eax, ecx
cmp ebx, eax
cmovae esi, eax
lea eax, [ebp - 0xb8]
push esi
add eax, ecx
push edi
push eax
call fcn.004d6950
mov ecx, dword [ebp - 0x78]
add esp, 0xc
add ecx, esi
add edi, esi
sub ebx, esi
mov dword [ebp - 0x78], ecx
cmp ecx, 0x40
jne 0x46f2f9
mov ecx, dword [ebp - 0x1dc]
lea eax, [ebp - 0xd8]
push eax
call fcn.004b2a40
xor ecx, ecx
mov dword [ebp - 0x78], ecx
test ebx, ebx
jne 0x46f2b0
mov edi, dword [ebp - 0x20c]
mov eax, dword [edi + 0x14]
mov eax, dword [eax + 0x480]
mov dword [ebp - 0x1f4], eax
mov eax, dword [edi + 0x18]
mov eax, dword [eax + 0x150]
mov dword [ebp - 0x1dc], eax
test eax, eax
je 0x46f3a3
mov eax, dword [ebp - 0xc4]
add eax, 0x14
mov dword [ebp - 0xc4], eax
cmp eax, 0x14
jae 0x46f343
inc dword [ebp - 0xc0]
mov edi, dword [ebp - 0x1dc]
mov ebx, 0x14
nop
mov eax, 0x40
mov esi, ebx
sub eax, ecx
cmp ebx, eax
cmovae esi, eax
lea eax, [ebp - 0xb8]
push esi
add eax, ecx
push edi
push eax
call fcn.004d6950
mov ecx, dword [ebp - 0x78]
add esp, 0xc
add ecx, esi
add edi, esi
sub ebx, esi
mov dword [ebp - 0x78], ecx
cmp ecx, 0x40
jne 0x46f399
mov ecx, dword [ebp - 0x1f4]
lea eax, [ebp - 0xd8]
push eax
call fcn.004b2a40
xor ecx, ecx
mov dword [ebp - 0x78], ecx
test ebx, ebx
jne 0x46f350
mov edi, dword [ebp - 0x20c]
mov eax, dword [edi + 0x14]
mov eax, dword [eax + 0x480]
mov dword [ebp - 0x1f4], eax
mov eax, dword [ebp - 0xc4]
add eax, 4
mov dword [ebp - 0xc4], eax
cmp eax, 4
jae 0x46f3cc
inc dword [ebp - 0xc0]
mov ebx, 4
lea edi, [ebp - 0x224]
mov eax, 0x40
mov esi, ebx
sub eax, ecx
cmp ebx, eax
cmovae esi, eax
lea eax, [ebp - 0xb8]
push esi
add eax, ecx
push edi
push eax
call fcn.004d6950
mov ecx, dword [ebp - 0x78]
add esp, 0xc
add ecx, esi
add edi, esi
sub ebx, esi
mov dword [ebp - 0x78], ecx
cmp ecx, 0x40
jne 0x46f420
mov ecx, dword [ebp - 0x1f4]
lea eax, [ebp - 0xd8]
push eax
call fcn.004b2a40
xor ecx, ecx
mov dword [ebp - 0x78], ecx
test ebx, ebx
jne 0x46f3d7
mov edi, dword [ebp - 0x20c]
mov eax, dword [edi + 0x14]
mov eax, dword [eax + 0x480]
mov dword [ebp - 0x1dc], eax
mov eax, dword [ebp - 0x21c]
mov dword [ebp - 0x1f4], eax
mov eax, dword [ebp - 0xc4]
add eax, 0x20
mov dword [ebp - 0xc4], eax
cmp eax, 0x20
jae 0x46f45f
inc dword [ebp - 0xc0]
mov edi, dword [ebp - 0x1f4]
mov ebx, 0x20
nop word [eax + eax]
mov eax, 0x40
mov esi, ebx
sub eax, ecx
cmp ebx, eax
cmovae esi, eax
lea eax, [ebp - 0xb8]
push esi
add eax, ecx
push edi
push eax
call fcn.004d6950
mov ecx, dword [ebp - 0x78]
add esp, 0xc
add ecx, esi
add edi, esi
sub ebx, esi
mov dword [ebp - 0x78], ecx
cmp ecx, 0x40
jne 0x46f4b9
mov ecx, dword [ebp - 0x1dc]
lea eax, [ebp - 0xd8]
push eax
call fcn.004b2a40
xor ecx, ecx
mov dword [ebp - 0x78], ecx
test ebx, ebx
jne 0x46f470
mov edi, dword [ebp - 0x20c]
mov ebx, dword [ebp - 0x210]
mov eax, dword [edi + 0x14]
mov eax, dword [eax + 0x480]
mov dword [ebp - 0x1dc], eax
mov eax, dword [edi + 0x18]
mov eax, dword [eax + 0x15c]
mov dword [ebp - 0x1f4], eax
test eax, eax
je 0x46f56d
mov eax, dword [ebp - 0xc4]
add eax, 0x20
mov dword [ebp - 0xc4], eax
cmp eax, 0x20
jae 0x46f509
inc dword [ebp - 0xc0]
mov edi, dword [ebp - 0x1f4]
mov ebx, 0x20
mov eax, 0x40
mov esi, ebx
sub eax, ecx
cmp ebx, eax
cmovae esi, eax
lea eax, [ebp - 0xb8]
push esi
add eax, ecx
push edi
push eax
call fcn.004d6950
mov ecx, dword [ebp - 0x78]
add esp, 0xc
add ecx, esi
add edi, esi
sub ebx, esi
mov dword [ebp - 0x78], ecx
cmp ecx, 0x40
jne 0x46f55d
mov ecx, dword [ebp - 0x1dc]
lea eax, [ebp - 0xd8]
push eax
call fcn.004b2a40
xor ecx, ecx
mov dword [ebp - 0x78], ecx
test ebx, ebx
jne 0x46f514
mov edi, dword [ebp - 0x20c]
mov ebx, dword [ebp - 0x210]
mov ecx, dword [edi + 0x14]
lea eax, [ebp - 0xd8]
push eax
mov ecx, dword [ecx + 0x480]
call fcn.004b2720
mov eax, dword [ebp - 0xd0]
mov dword [ebx + 4], eax
cmp dword [ebp - 0x1e0], 0
mov esi, dword [ebp - 0x1e8]
mov eax, dword [ebp - 0x214]
cmovne eax, dword [ebp - 0x1ec]
mov dword [ebx + 8], esi
add esi, esi
mov dword [ebx + 0xc], eax
mov eax, dword [ebp - 0x1e4]
push esi
push dword [ebp - 0x220]
mov dword [ebx + 0x10], eax
add ebx, 0x14
push ebx
call fcn.004d6950
add esp, 0xc
add ebx, esi
cmp dword [ebp - 0x1e0], 0
je 0x46f5e4
mov eax, dword [ebp - 0x1ec]
lea esi, [eax + eax]
push esi
lea eax, [ebp - 0x70]
push eax
jmp 0x46f5f8
mov eax, dword [ebp - 0x214]
test eax, eax
je 0x46f603
lea esi, [eax + eax]
push esi
push dword [ebp - 0x208]
push ebx
call fcn.004d6950
add esp, 0xc
add ebx, esi
mov eax, dword [ebp - 0x1e4]
lea esi, [eax + eax]
push esi
push dword [ebp - 0x218]
mov dword [ebp - 0x1e8], esi
push ebx
call fcn.004d6950
add esp, 0xc
add ebx, esi
cmp dword [ebp - 0x1e0], 0
je 0x46f783
mov eax, dword [edi + 0x14]
mov edx, dword [edi + 0x48]
mov esi, dword [eax + 0x480]
mov eax, ebx
sub eax, edx
test edx, edx
je 0x46f6b4
lea ecx, [ebp - 0xd8]
mov dword [ebp - 0xc0], 0
push ecx
push eax
push edx
mov ecx, esi
mov dword [ebp - 0xc4], 0
mov dword [ebp - 0xd8], 0x67452301
mov dword [ebp - 0xd4], 0xefcdab89
mov dword [ebp - 0xd0], 0x98badcfe
mov dword [ebp - 0xcc], 0x10325476
mov dword [ebp - 0xc8], 0xc3d2e1f0
mov dword [ebp - 0x78], 0
call fcn.004b22d0
lea eax, [ebp - 0xd8]
mov ecx, esi
push eax
call fcn.004b2720
mov eax, dword [ebp - 0x1fc]
push 0x2c6
movups xmm0, xmmword [eax]
movups xmmword [ebx], xmm0
movups xmm0, xmmword [eax + 0x10]
movups xmmword [ebx + 0x10], xmm0
movq xmm0, qword [eax + 0x20]
lea eax, [ebp - 0x1f4]
movq qword [ebx + 0x20], xmm0
add ebx, 0x28
push eax
call fcn.004bd020
mov esi, dword [ebp - 0x1f4]
push 0x14
push dword [ebp - 0x200]
push 0x2c6
push esi
call fcn.004bbdb0
lea eax, [ebp - 0x1f4]
mov dword [ebp - 0x1f4], 0x28
push eax
push ebx
push ecx
lea eax, [ebp - 0xd8]
push eax
push esi
call fcn.004bc800
test esi, esi
je 0x46f751
mov ecx, dword [esi + 8]
mov dword [esi], 0
mov dword [esi + 4], 0
test ecx, ecx
je 0x46f73c
call fcn.004c2a10
mov ecx, dword [esi + 0xc]
test ecx, ecx
je 0x46f748
call fcn.004bfe20
push esi
call fcn.004d9a63
add esp, 4
mov eax, dword [ebp - 0x1fc]
add ebx, 0x28
push eax
call fcn.004d9a63
add esp, 4
xor eax, eax
mov dword [ebp - 0x1fc], eax
push dword [ebp - 0x200]
call fcn.004d9a63
add esp, 4
mov dword [ebp - 0x200], 0
mov eax, dword [edi + 0x14]
mov esi, dword [eax + 0x4c8]
lea eax, [ebp - 0x1e0]
push eax
mov ecx, esi
call fcn.0047ac20
test eax, eax
je 0x46f7ac
lea eax, [ebp - 0x1e0]
mov ecx, esi
push eax
call fcn.0047acd0
mov eax, dword [ebp - 0x1e0]
add eax, dword [ebp - 0x204]
mov dword [ebx], eax
lea eax, [ebx + 4]
mov ebx, eax
mov dword [ebp - 0x1f4], eax
lea eax, [edi + 0x1c]
push eax
mov dword [ebx], 0
add ebx, 4
mov esi, ebx
sub esi, dword [edi + 0x48]
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [edi + 8]
add eax, 0xb4
cmp eax, dword [ebp - 0x1e0]
jbe 0x46f804
push dword [ebp - 0x228]
mov eax, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov esi, 2
call eax
jmp 0x46fb1c
mov ecx, dword [edi + 0x3c]
push esi
push dword [edi + 0x48]
call fcn.004ab560
test eax, eax
jne 0x46fb03
push esi
push dword [edi + 0x48]
lea eax, [ebp - 0x150]
push eax
push 1
call fcn.004ab3f0
test eax, eax
jne 0x46fb03
push ebx
push esi
push dword [edi + 0x48]
lea eax, [ebp - 0x150]
push eax
call fcn.004ab990
mov eax, dword [ebp - 0x1f4]
mov dword [eax], 4
lea eax, [esi + 0x20]
mov esi, dword [edi + 0x48]
mov ebx, dword [edi + 0x38]
mov dword [ebp - 0x208], eax
test esi, esi
je 0x46fb03
cmp eax, 0x68
jb 0x46fb03
cmp dword [esi], 0x7d1
jne 0x46fb03
cmp dword [esi + 4], 0
jne 0x46f9f3
mov eax, dword [ebx + 0x90]
mov ecx, dword [ebx + 8]
mov dword [ebp - 0x1f4], eax
lea eax, [ebp - 0x1f4]
push eax
push dword [ebx + 0x9c]
lea eax, [ebx + 0x10]
push eax
push dword [ebp - 0x21c]
call fcn.004a73f0
test eax, eax
jne 0x46fb03
lea eax, [ebp - 0x1dc]
push eax
push ecx
push dword [ebx + 0x9c]
call fcn.004abbd0
test eax, eax
jne 0x46fb03
mov eax, dword [esi + 0x64]
add eax, dword [esi + 0x60]
add eax, dword [esi + 0x5c]
test byte [esi + 8], 1
lea eax, [eax*2 + 0x3c]
mov dword [ebp - 0x1ec], eax
je 0x46f8f8
add eax, 0x50
mov dword [ebp - 0x1ec], eax
mov ecx, dword [ebx + 0xc]
lea eax, [ebp - 0x130]
push eax
push 0x20
push dword [ebp - 0x21c]
mov dword [ebp - 0x11c], 0
mov dword [ebp - 0x120], 0
mov dword [ebp - 0x130], 0x67452301
mov dword [ebp - 0x12c], 0xefcdab89
mov dword [ebp - 0x128], 0x98badcfe
mov dword [ebp - 0x124], 0x10325476
call fcn.004b2200
mov ecx, dword [ebx + 0xc]
lea eax, [ebp - 0x130]
push eax
push dword [ebp - 0x1dc]
push dword [ebx + 0x9c]
call fcn.004b2200
mov ecx, dword [ebx + 0xc]
lea eax, [ebp - 0x130]
push eax
push 4
lea eax, [ebp - 0x1ec]
push eax
call fcn.004b2200
mov ecx, dword [ebx + 0xc]
lea eax, [ebp - 0x130]
push eax
push 4
lea eax, [ebp - 0x1dc]
push eax
call fcn.004b2200
mov ecx, dword [ebx + 0xc]
lea eax, [ebp - 0x130]
push eax
push 0x20
push dword [ebp - 0x21c]
call fcn.004b2200
mov ecx, dword [ebx + 0xc]
lea eax, [ebp - 0x130]
push eax
call fcn.004b2580
lea eax, [ebp - 0x130]
push eax
push dword [ebp - 0x1ec]
lea edx, [esi + 0x2c]
lea ecx, [ebp - 0x1d8]
call fcn.004bd9f0
mov ebx, dword [ebp - 0x208]
add esp, 8
movzx eax, word [ebp - 0x1ec]
mov ecx, ebx
shl ecx, 0x10
or ecx, eax
mov dword [esi + 4], ecx
jmp 0x46f9f9
mov ebx, dword [ebp - 0x208]
mov ecx, dword [edi + 0x14]
lea eax, [ebp - 0x1e8]
push eax
push 0x4c62d236
mov ecx, dword [ecx + 0x470]
call fcn.004033f0
cmp dword [ebp - 0x1e8], 0x20
jae 0x46fabf
lea ecx, [ebp - 0x254]
call fcn.00406d70
lea eax, [ebp - 0x150]
mov dword [ebp - 0x254], 0x4c62d236
mov dword [ebp - 0x250], eax
mov eax, dword [edi + 0x48]
mov dword [ebp - 0x244], eax
mov eax, dword [ebp - 0x1e0]
add eax, 0x127500
mov dword [ebp - 0x24c], 0x20
mov dword [ebp - 0x22c], eax
mov eax, dword [ebp - 0x204]
mov dword [ebp - 0x234], eax
mov eax, dword [edi + 0x14]
push ecx
mov dword [ebp - 0x248], 4
mov dword [ebp - 0x240], ebx
mov ecx, dword [eax + 0x470]
call fcn.004039d0
mov ebx, eax
test ebx, ebx
jne 0x46fac4
xor ecx, ecx
mov edx, 4
xor esi, esi
nop
mov eax, dword [esi + edi + 0xc]
inc ecx
mov dword [esi + edi + 8], eax
mov esi, edx
add edx, 4
cmp ecx, 2
jb 0x46faa0
mov eax, dword [ebp - 0x1e0]
mov dword [edi + ecx*4 + 8], eax
jmp 0x46fac4
mov ebx, 1
lea eax, [edi + 0x1c]
push eax
mov eax, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
call eax
mov eax, dword [edi + 0x14]
test byte [eax + 0x244], 4
je 0x46faee
cmp dword [eax + 0x468], 0xffffffff
jne 0x46faee
mov dword [eax + 0x468], 0
mov eax, ebx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004d3878
mov esp, ebp
pop ebp
ret 0x18
mov esi, 1
push dword [ebp - 0x228]
mov eax, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
call eax
jmp 0x46fb1c
mov esi, 1
mov eax, dword [ebp - 0x1fc]
test eax, eax
je 0x46fb2f
push eax
call fcn.004d9a63
add esp, 4
mov eax, dword [ebp - 0x200]
test eax, eax
je 0x46fb42
push eax
call fcn.004d9a63
add esp, 4
mov eax, esi
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004d3878
mov esp, ebp
pop ebp
ret 0x18
mov ecx, dword [ebp - 4]
mov eax, 1
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004d3878
mov esp, ebp
pop ebp
ret 0x18