Function at 0x4a1380
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x535558
mov eax, dword fs:[0]
push eax
mov eax, 0x33f4
call fcn.00518bb0
mov eax, dword [0x5801d4]
xor eax, esp
mov dword [esp + 0x33f0], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x5801d4]
xor eax, esp
push eax
lea eax, [esp + 0x3408]
mov dword fs:[0], eax
mov eax, dword [esp + 0x3418]
mov ebx, ecx
mov ecx, dword [esp + 0x3420]
mov dword [esp + 0x30], ecx
mov ecx, dword [eax + 8]
lea edx, [ecx - 1]
mov ecx, dword [esp + 0x341c]
cmp ecx, edx
mov dword [esp + 0x70], ebx
jg 0x4a2333
mov eax, dword [eax + 4]
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax + 0xc]
mov edx, dword [eax + 0x14]
mov ebp, dword [eax]
mov esi, dword [eax + 4]
mov edi, dword [eax + 8]
mov dword [esp + 0x20], ecx
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x2c], edx
mov edx, dword [eax + 0x1c]
mov dword [esp + 0x4c], ecx
mov ecx, dword [eax + 0x18]
mov dword [esp + 0x44], edx
mov edx, dword [eax + 0x20]
mov dword [esp + 0x48], ecx
mov ecx, dword [eax + 0x24]
mov dword [esp + 0x38], edx
mov edx, dword [eax + 0x28]
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x28], ecx
mov dword [esp + 0x40], edx
call fcn.004e3232
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x4a1450
push 0x80004005
call fcn.00401f30
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x14], eax
xor eax, eax
mov dword [esp + 0x3410], eax
mov dword [esp + 0x74], 0xc
mov dword [esp + 0x7c], 1
mov dword [esp + 0x78], eax
call fcn.004e3232
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x4a1497
push 0x80004005
call fcn.00401f30
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x1c], eax
mov ecx, dword [esp + 0x30]
push ecx
push ebp
push edi
lea edx, [esp + 0x28]
push edx
mov ecx, ebx
mov byte [esp + 0x3420], 1
call fcn.0049eab0
test eax, eax
je 0x4a22e4
call fcn.004e3232
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x4a14e4
push 0x80004005
call fcn.00401f30
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x20]
mov edi, dword [esp + 0x30]
mov byte [esp + 0x3410], 2
test eax, eax
je 0x4a1528
push edi
push ebp
push eax
lea ecx, [esp + 0x30]
push ecx
mov ecx, ebx
call fcn.0049eab0
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx - 0xc]
neg eax
sbb eax, eax
and eax, ecx
mov dword [esp + 0x20], eax
xor eax, eax
push 0x44
push eax
lea edx, [esp + 0x88]
push edx
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], eax
call fcn.00518180
add esp, 0xc
cmp dword [esp + 0x40], 0
mov eax, 5
mov dword [esp + 0x80], 0x44
mov dword [esp + 0xac], 1
mov word [esp + 0xb0], ax
jne 0x4a1c77
cmp dword [esp + 0x28], 0
jne 0x4a1c77
lea ecx, [esp + 0x18]
call fcn.00402b00
push edi
push ebp
push esi
lea ecx, [esp + 0x24]
push ecx
mov ecx, ebx
mov byte [esp + 0x3420], 4
call fcn.0049eab0
cmp dword [esp + 0x38], 0
jne 0x4a1899
cmp dword [esp + 0x2c], 0
jne 0x4a1899
push esi
call fcn.0049c920
add esp, 4
test eax, eax
jne 0x4a1899
xor edx, edx
cmp dword [0x5b2e20], 2
push esi
sete dl
mov edi, edx
mov dword [esp + 0x3c], edi
call fcn.004465d0
mov ebp, eax
add esp, 4
test ebp, ebp
jne 0x4a15f3
mov ebp, 0x55d6c4
lea esi, [ebx + 0x144]
push esi
push 0x208
call dword [0x53d328]
mov eax, esi
add eax, 0xfffffffe
lea ebx, [ebx]
mov cx, word [eax + 2]
add eax, 2
test cx, cx
jne 0x4a1610
mov ecx, dword [0x54fb5c]
mov dword [eax], ecx
mov edx, dword [0x54fb60]
mov dword [eax + 4], edx
mov ecx, dword [0x54fb64]
mov dword [eax + 8], ecx
mov edx, dword [0x54fb68]
mov dword [eax + 0xc], edx
mov cx, word [0x54fb6c]
mov word [eax + 0x10], cx
mov eax, 0x54fb54
test edi, edi
jne 0x4a1658
mov eax, 0x54fb4c
mov edx, eax
lea ebx, [ebx]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4a1660
lea edi, [ebx + 0x144]
sub eax, edx
add edi, 0xfffffffe
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x4a1676
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x50]
call fcn.00448580
push 1
push 1
push 0x40000000
lea eax, [ebx + 0x144]
push eax
lea ecx, [esp + 0x60]
mov byte [esp + 0x3420], 5
call fcn.00448ae0
test eax, eax
je 0x4a1883
push 0x22
lea ecx, [esp + 0x18]
call fcn.004257c0
lea edx, [esp + 0x18]
push edx
lea ecx, [esp + 0x18]
call fcn.00414750
push 0x22
lea ecx, [esp + 0x18]
call fcn.00402dc0
mov eax, dword [esp + 0x1c]
cmp dword [eax - 0xc], 0
jle 0x4a170b
push 0x20
lea ecx, [esp + 0x18]
call fcn.00402dc0
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [esp + 0x18]
call fcn.00414750
xor eax, eax
lea ecx, [ecx]
movzx ecx, word [eax + 0x54fb34]
mov word [esp + eax + 0xcf4], cx
add eax, 2
test cx, cx
jne 0x4a1710
push 0x54fb54
push ebp
call fcn.005183ef
add esp, 8
test eax, eax
je 0x4a1750
push 0x54fb4c
push ebp
call fcn.005183ef
add esp, 8
test eax, eax
mov eax, 0x55d6c4
jne 0x4a1755
mov eax, 0x54fb28
mov edx, eax
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4a1757
lea edi, [esp + 0xcf4]
sub eax, edx
add edi, 0xfffffffe
mov edi, edi
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x4a1770
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [esp + 0x14]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edx, eax
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4a1792
lea edi, [esp + 0xcf4]
sub eax, edx
add edi, 0xfffffffe
lea esp, [esp]
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x4a17b0
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
cmp dword [esp + 0x38], 0
rep movsb byte es:[edi], byte [esi]
je 0x4a180f
lea eax, [esp + 0xcf4]
add eax, 0xfffffffe
lea ecx, [ecx]
mov cx, word [eax + 2]
add eax, 2
test cx, cx
jne 0x4a17e0
mov edx, dword [0x54fb18]
mov ecx, dword [0x54fb1c]
mov dword [eax], edx
mov edx, dword [0x54fb20]
mov dword [eax + 4], ecx
mov ecx, dword [0x54fb24]
mov dword [eax + 8], edx
mov dword [eax + 0xc], ecx
lea eax, [esp + 0xcf4]
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4a1820
sub eax, edx
sar eax, 1
mov edi, eax
lea ebp, [edi + edi]
lea edx, [ebp + 1]
push edx
call fcn.004d76f8
add esp, 4
push 0
push 0
push ebp
mov esi, eax
push esi
push edi
lea eax, [esp + 0xd08]
push eax
push 0
push 0
call dword [0x53d288]
push eax
push esi
lea ecx, [esp + 0x58]
mov byte [eax + esi], 0
call fcn.00448c70
push esi
call fcn.004d7727
add esp, 4
lea eax, [ebx + 0x144]
push eax
lea ecx, [esp + 0x18]
call fcn.00403390
lea ecx, [esp + 0x50]
mov byte [esp + 0x3410], 4
call fcn.004485b0
jmp 0x4a1a8d
lea ecx, [esp + 0x18]
push ecx
lea ecx, [esp + 0x18]
call fcn.00406bb0
mov edx, dword [esp + 0x1c]
cmp dword [edx - 0xc], 0
jle 0x4a18ca
push 0x20
lea ecx, [esp + 0x18]
call fcn.00402dc0
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x18]
call fcn.00414750
cmp dword [esp + 0x2c], 0
je 0x4a1a8d
cmp dword [ebx + 0x5c8], 0
jne 0x4a193a
call dword [0x53d284]
push eax
lea esi, [ebx + 0x554]
push 0x54fb00
push esi
call dword [0x53d764]
add esp, 0xc
push esi
push 0x1000
push 0
push 4
push 0
push 0xffffffffffffffff
call dword [0x53d2f0]
mov dword [ebx + 0x5c8], eax
test eax, eax
jne 0x4a193a
push eax
push eax
push 0x53ec
call fcn.00448800
xor ecx, ecx
mov word [esi], cx
add esp, 0xc
lea ecx, [esp + 0x18]
call fcn.00402910
jmp 0x4a1e0b
cmp dword [ebx + 0xb4], 0
jne 0x4a1984
mov edx, dword [ebx + 0x5c8]
push 0
push 0
push 0
push 0xf001f
push edx
call dword [0x53d38c]
mov dword [ebx + 0xb4], eax
test eax, eax
jne 0x4a1984
push 0
push 0
push 0x53ec
call fcn.00448800
add esp, 0xc
lea ecx, [esp + 0x18]
call fcn.00402910
jmp 0x4a1e0b
mov edx, dword [ebx + 0xb4]
mov eax, dword [esp + 0x14]
mov ecx, dword [eax - 0xc]
push 0
push 0
push 0xff6
add edx, 3
push edx
push ecx
push eax
push 0
push 0
call dword [0x53d288]
mov ecx, dword [ebx + 0xb4]
mov byte [ecx + eax + 3], 0
mov edi, dword [ebx + 0xb4]
add edi, 2
mov edi, edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x4a19c0
mov dx, word [0x54fafc]
push 0
lea eax, [esp + 0x54]
push eax
lea esi, [ebx + 0x5c0]
mov word [edi], dx
push esi
lea ecx, [ebx + 0x5bc]
push ecx
mov dword [esp + 0x60], 0xc
mov dword [esp + 0x68], 1
mov dword [esp + 0x64], 0
call dword [0x53d388]
test eax, eax
je 0x4a1965
lea ecx, [esp + 0x28]
call fcn.00402b00
mov edx, dword [esi]
mov ecx, dword [0x582758]
push edx
mov edx, dword [ecx + 0xc8]
lea eax, [ebx + 0x554]
push eax
push edx
lea eax, [esp + 0x34]
push 0x54fad0
push eax
mov byte [esp + 0x3424], 6
call fcn.00402f60
add esp, 0x14
lea ecx, [esp + 0x28]
push ecx
lea ecx, [esp + 0x18]
call fcn.00406bb0
mov eax, dword [ebx + 0xb4]
xor edx, edx
mov word [esp + 0xb0], dx
mov byte [eax + 2], 1
mov ecx, dword [ebx + 0xb4]
mov byte [ecx + 1], 1
mov edx, dword [ebx + 0xb4]
lea ecx, [esp + 0x28]
mov byte [edx], 1
mov byte [esp + 0x3410], 4
call fcn.00402910
push 0
push 0
call dword [0x53d384]
mov eax, dword [esp + 0x14]
mov eax, dword [eax - 0xc]
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004d76f8
mov ecx, dword [esp + 0x18]
mov esi, eax
add esp, 4
mov edx, esi
movzx eax, word [ecx]
mov word [edx], ax
add ecx, 2
add edx, 2
test ax, ax
jne 0x4a1ac0
mov edx, dword [esp + 0x20]
lea eax, [esp + 0x60]
push eax
lea ecx, [esp + 0x84]
push ecx
push edx
push 0
push 0
push 1
push 0
push 0
push esi
push 0
call dword [0x53d360]
push esi
mov edi, eax
call fcn.004d7727
add esp, 4
test edi, edi
je 0x4a1c2e
cmp dword [esp + 0x2c], 0
je 0x4a1c46
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x60]
push 1
push ecx
push edx
mov ecx, ebx
mov dword [ebx + 0x5b8], eax
call fcn.0049cd20
lea eax, [esp + 0x24]
lea ecx, [ebx + 0x128]
push eax
call fcn.00406bb0
lea ecx, [esp + 0x20]
call fcn.00402b00
push 0x54f8e4
lea ecx, [esp + 0x24]
mov byte [esp + 0x3414], 7
call fcn.00403390
mov edi, dword [esp + 0x3c]
xor esi, esi
cmp word [edi], si
je 0x4a1b8e
mov eax, edi
lea ecx, [ecx]
movzx eax, word [eax]
cmp ax, 0x26
je 0x4a1b83
push eax
lea ecx, [esp + 0x24]
call fcn.00402c30
inc esi
cmp word [edi + esi*2], 0
lea eax, [edi + esi*2]
jne 0x4a1b70
push 0x54f8cc
lea ecx, [esp + 0x24]
call fcn.004033d0
mov eax, dword [esp + 0x20]
mov ecx, dword [eax - 0xc]
push 1
push ecx
push eax
mov ecx, ebx
call fcn.0049cc30
mov ecx, dword [0x5b2f68]
push 0
push 1
push ebx
call fcn.004e7427
mov ecx, dword [0x5b2f68]
mov edx, dword [ecx + 0x20]
push edx
call dword [0x53d720]
mov eax, dword [0x5b2f68]
test eax, eax
je 0x4a1bda
mov eax, dword [eax + 0x20]
mov dword [ebx + 0x5c4], eax
call dword [0x53d284]
cmp dword [esp + 0x3424], 0
mov dword [ebx + 0x118], eax
je 0x4a1c0a
push ebx
call fcn.004a0df0
add esp, 4
lea ecx, [esp + 0x20]
call fcn.00402910
jmp 0x4a1c46
push 0
push 0
push 0
push 0xfffffffffffffffe
push ebx
push 0x4a01f0
call fcn.004ee3ec
lea ecx, [esp + 0x20]
mov dword [ebx + 0x5b4], eax
call fcn.00402910
jmp 0x4a1c46
mov ecx, ebx
call fcn.0049c960
push 0
push 0
push 0x5b9e
call fcn.00448800
add esp, 0xc
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
mov byte [esp + 0x3410], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4a22bc
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x4a22bc
push edi
push ebp
xor ecx, ecx
push esi
lea edx, [esp + 0x20]
mov word [esp + 0xbc], cx
push edx
mov ecx, ebx
call fcn.0049eab0
mov esi, dword [esp + 0x1c]
cmp dword [esi - 0xc], 0
jle 0x4a1cb3
push 0x20
lea ecx, [esp + 0x18]
call fcn.00402c30
mov eax, dword [esi - 0xc]
push eax
push esi
lea ecx, [esp + 0x1c]
call fcn.00402e10
mov eax, dword [esp + 0x14]
mov eax, dword [eax - 0xc]
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004d76f8
mov ecx, dword [esp + 0x18]
add esp, 4
mov dword [esp + 0x5c], eax
mov edx, eax
mov edi, edi
movzx eax, word [ecx]
mov word [edx], ax
add ecx, 2
add edx, 2
test ax, ax
jne 0x4a1ce0
xor ebp, ebp
xor eax, eax
xor ecx, ecx
xor edx, edx
xor ebx, ebx
mov dword [esp + 0x38], ebp
mov word [esp + 0x8e4], ax
mov word [esp + 0x4d4], cx
mov word [esp + 0xc4], dx
mov dword [esp + 0x30], ebp
cmp dword [esp + 0x28], ebp
jne 0x4a1f4d
cmp edi, ebp
je 0x4a1d3b
push 0x54ba84
mov ecx, edi
call fcn.004e41e8
test eax, eax
je 0x4a1d3b
mov ebx, edi
lea eax, [esp + 0x4d4]
push eax
push 0x208
call dword [0x53d328]
lea ecx, [esp + 0xc4]
push ecx
push ebp
lea edx, [esp + 0x4dc]
push 0x54fac8
push edx
call fcn.00448980
add esp, 0x10
cmp ebx, ebp
je 0x4a1dfd
mov eax, dword [ebx + 0xf8]
cmp eax, 0xf4240
mov dword [esp + 0x30], eax
jle 0x4a1d8e
sub eax, 0xf4240
mov dword [esp + 0x30], eax
cmp dword [ebx + 0x100], ebp
je 0x4a1da9
push 1
push ebp
push 1
lea eax, [esp + 0x38]
push eax
mov ecx, ebx
call fcn.004706a0
jmp 0x4a1db8
push ebp
push 1
lea ecx, [esp + 0x34]
push ecx
mov ecx, ebx
call fcn.004705f0
mov edi, eax
lea ebp, [edi + edi]
lea edx, [ebp + 1]
push edx
call fcn.004d76f8
mov ecx, dword [esp + 0x34]
add esp, 4
push 0
push 0
push ebp
mov esi, eax
mov eax, dword [esp + 0x38]
push esi
push edi
push eax
push 0
push ecx
call dword [0x53d288]
mov byte [eax + esi], 0
mov edx, dword [esp + 0x2c]
push edx
mov dword [esp + 0x1c], eax
call fcn.004d7727
add esp, 4
test esi, esi
jne 0x4a1e2b
push 0xffffffffffffffff
push 0
push 0x53eb
call fcn.004e411e
lea ecx, [esp + 0x24]
call fcn.00402910
lea ecx, [esp + 0x1c]
call fcn.00402910
lea ecx, [esp + 0x14]
call fcn.00402910
jmp 0x4a2333
mov ebp, dword [0x53d2d4]
push 0
push 0x80
push 2
lea eax, [esp + 0x80]
push eax
push 3
push 0xc0000000
lea ecx, [esp + 0xdc]
push ecx
call ebp
mov edi, eax
mov dword [esp + 0x38], edi
cmp edi, 0xffffffff
jne 0x4a1e76
push eax
push 0
push 0x53ef
call fcn.004e411e
push esi
call fcn.004d7727
add esp, 4
jmp 0x4a1e0b
mov eax, dword [esp + 0x18]
push 0
lea edx, [esp + 0x54]
push edx
push eax
push esi
push edi
call dword [0x53d344]
push 0
push 0
push 0
push edi
call dword [0x53d2cc]
push esi
call fcn.004d7727
lea ecx, [esp + 0x8e8]
push ecx
push 0
lea edx, [esp + 0x4e0]
push 0x54fac0
push edx
call fcn.00448980
add esp, 0x14
push 0
push 0x80
push 2
lea eax, [esp + 0x80]
push eax
push 3
push 0xc0000000
lea ecx, [esp + 0x8fc]
push ecx
call ebp
mov ebp, eax
cmp ebp, 0xffffffff
jne 0x4a1f0e
push eax
push 0
push 0x53ef
call fcn.004e411e
push edi
call dword [0x53d2b4]
lea edx, [esp + 0xc4]
push edx
call fcn.004476a0
add esp, 4
jmp 0x4a1e0b
or dword [esp + 0xac], 0x100
cmp dword [esp + 0x40], 0
mov dword [esp + 0xb8], edi
mov dword [esp + 0xbc], ebp
je 0x4a1f3e
cmp dword [esp + 0x48], 1
jne 0x4a1f3e
mov dword [esp + 0xc0], ebp
jmp 0x4a1f4d
push 0xfffffffffffffff4
call dword [0x53d380]
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0x3c]
push eax
lea ecx, [esp + 0x18]
push 0x54db
push ecx
call fcn.00402fc0
mov ecx, dword [0x5b2f68]
add esp, 0xc
push 0
lea edx, [esp + 0x18]
push edx
call fcn.004576c0
mov edx, dword [esp + 0x20]
lea eax, [esp + 0x60]
push eax
mov eax, dword [esp + 0x60]
lea ecx, [esp + 0x84]
push ecx
push edx
push 0
push 0
push 1
push 0
push 0
push eax
push 0
call dword [0x53d360]
test eax, eax
je 0x4a226a
cmp dword [esp + 0x28], 0
jne 0x4a227b
lea ecx, [esp + 0x37]
call fcn.00411510
mov ecx, dword [esp + 0x60]
mov edi, dword [0x53d358]
push 0x7530
push ecx
mov byte [esp + 0x3418], 3
call edi
mov esi, eax
cmp esi, 0x102
jne 0x4a2009
nop
push 0xffffffffffffffff
push 5
push 0x53ea
call fcn.004e411e
cmp eax, 2
je 0x4a2009
mov edx, dword [esp + 0x60]
push 0x7530
push edx
call edi
mov esi, eax
cmp esi, 0x102
je 0x4a1fe0
test esi, esi
jne 0x4a2257
push esi
push ebp
call dword [0x53d2d0]
mov dword [esp + 0x18], eax
test eax, eax
jle 0x4a224c
inc eax
push eax
call fcn.004d76f8
add esp, 4
push esi
push esi
push esi
push ebp
mov edi, eax
call dword [0x53d2cc]
mov ecx, dword [esp + 0x18]
push esi
lea eax, [esp + 0x30]
push eax
push ecx
push edi
push ebp
call dword [0x53d2c8]
mov edx, dword [esp + 0x18]
mov byte [edi + edx], 0
mov eax, dword [esp + 0x18]
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004d76f8
add esp, 4
mov esi, eax
mov eax, dword [esp + 0x18]
push eax
push esi
push eax
mov eax, dword [esp + 0x3c]
push edi
push 0
push eax
call dword [0x53d280]
xor ecx, ecx
mov dword [esp + 0x18], eax
push edi
mov word [esi + eax*2], cx
call fcn.004d7727
lea edx, [esp + 0x1c]
push edx
lea eax, [esp + 0x44]
push eax
push esi
call fcn.00466c90
add esp, 0x10
test eax, eax
je 0x4a20bf
push esi
call fcn.004d7727
mov esi, dword [esp + 0x40]
add esp, 4
cmp dword [esp + 0x40], 0
je 0x4a218b
mov eax, dword [esp + 0x48]
test eax, eax
je 0x4a218b
cmp eax, 2
jne 0x4a212a
mov ecx, ebx
call fcn.00461460
mov edi, eax
test edi, edi
je 0x4a2230
push 0x54c510
mov ecx, edi
call fcn.004e41e8
test eax, eax
je 0x4a2230
push 0
mov ecx, edi
call fcn.0048b340
mov ecx, dword [edi + 0x88]
mov edx, dword [esp + 0x18]
mov eax, dword [edi + 0x6c]
push ecx
mov ecx, dword [edi + 0x70]
push edx
push esi
push eax
push ecx
mov ecx, ebx
call fcn.0046e2e0
jmp 0x4a2223
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x70]
push 1
push edx
push eax
call fcn.0049cd20
mov ecx, dword [esp + 0x18]
push ecx
mov ecx, dword [0x5b2f68]
push esi
add ecx, 0x5d8
call fcn.0049ce80
mov ecx, dword [0x5b2f68]
push 0
push 1
lea edx, [ecx + 0x5d8]
push edx
call fcn.004e7427
push esi
call fcn.004d7727
add esp, 4
lea ecx, [esp + 0x37]
mov byte [esp + 0x3410], 2
call fcn.004132c0
jmp 0x4a227b
mov ecx, ebx
call fcn.00461460
mov edi, eax
test edi, edi
je 0x4a2230
push 0x54c510
mov ecx, edi
call fcn.004e41e8
test eax, eax
je 0x4a2230
mov eax, dword [ebx + 0x100]
test eax, eax
je 0x4a21f3
mov edx, dword [esp + 0x18]
xor ecx, ecx
cmp eax, 2
sete cl
push 1
push 1
push ecx
push edx
push esi
mov ecx, edi
call fcn.0048d250
push esi
call fcn.004d7727
add esp, 4
lea ecx, [esp + 0x37]
mov byte [esp + 0x3410], 2
call fcn.004132c0
jmp 0x4a227b
mov eax, dword [ebx + 0x294]
mov edx, dword [ebx + 0x2e0]
dec eax
mov ecx, eax
shl ecx, 5
mov ecx, dword [ecx + edx]
mov edx, dword [edi + 0x88]
push edx
mov edx, dword [esp + 0x1c]
push edx
push esi
push eax
dec ecx
push ecx
push 0
push 0
mov ecx, ebx
call fcn.004715c0
push 0
push 0
push 1
mov ecx, edi
call fcn.004898c0
push esi
call fcn.004d7727
add esp, 4
lea ecx, [esp + 0x37]
mov byte [esp + 0x3410], 2
call fcn.004132c0
jmp 0x4a227b
mov ecx, dword [0x582758]
call fcn.004113e0
lea ecx, [esp + 0x37]
mov byte [esp + 0x3410], 2
call fcn.004132c0
jmp 0x4a227b
push 0
push 0
push 0x5b9e
call fcn.00448800
add esp, 0xc
mov eax, dword [esp + 0x5c]
push eax
call fcn.004d7727
add esp, 4
cmp dword [esp + 0x28], 0
jne 0x4a22bc
mov ecx, dword [esp + 0x38]
mov esi, dword [0x53d2b4]
push ecx
call esi
push ebp
call esi
lea edx, [esp + 0xc4]
push edx
call fcn.004476a0
lea eax, [esp + 0x8e8]
push eax
call fcn.004476a0
add esp, 8
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
mov byte [esp + 0x3410], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4a22e4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
mov byte [esp + 0x3410], 0
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4a230c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
mov dword [esp + 0x3410], edx
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4a2333
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x3408]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x33f0]
xor ecx, esp
call fcn.0051767d
add esp, 0x3400
ret 0x10