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

Disassembly:
sub esp, 0x1cc
push esi
mov esi, ecx
mov dword [esp + 4], esi
mov eax, dword [esi + 0x58]
test byte [eax + 8], 4
jne 0x461c7f
mov ecx, dword [esi + 0x64]
test byte [ecx + 8], 4
jne 0x461c7f
movsx edx, word [esi + 0xa]
mov eax, dword [0x5c9fb8]
push ebx
push ebp
xor ebp, ebp
shl edx, 4
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x20], ebp
mov ecx, dword [edx + eax]
push edi
push ecx
lea ecx, [esp + 0xd4]
mov dword [esp + 0x1c], ebp
call fcn.004d08b0
movsx edx, word [esi + 0xa]
mov eax, dword [0x5c9fb8]
shl edx, 4
mov ecx, dword [edx + eax]
push ecx
lea ecx, [esp + 0x194]
call fcn.004cf5c0
mov ecx, dword [esi + 0x64]
call fcn.004c7b80
mov edi, eax
mov ebx, 1
mov dword [esp + 0x14], edi
cmp edi, ebp
je 0x4612ae
test byte [edi + 0x4b], 2
je 0x46128d
cmp dword [edi + 0x47], ebx
jne 0x46128d
mov ecx, edi
call fcn.004a8c30
mov edi, eax
jmp 0x461273
cmp edi, ebp
mov dword [esp + 0x14], edi
je 0x4612b2
mov ecx, dword [esi + 0x64]
call fcn.004c7b80
cmp edi, eax
jne 0x4612b2
mov ecx, edi
call fcn.004a8c30
mov dword [esp + 0x14], eax
jmp 0x4612b2
mov dword [esp + 0x14], edi
mov ecx, esi
call fcn.004622f0
mov eax, dword [esi + 0x58]
mov dl, byte [eax + 8]
or dl, 4
mov byte [eax + 8], dl
mov eax, dword [esi + 0x64]
mov cl, byte [eax + 8]
or cl, 4
mov byte [eax + 8], cl
mov ecx, dword [esi + 0x58]
call fcn.004c7b80
mov ebx, eax
cmp ebx, ebp
je 0x461b87
mov ecx, ebx
call fcn.004a8c30
mov edx, dword [ebx]
push 0
push 0
mov ecx, ebx
mov dword [esp + 0x24], eax
call dword [edx + 0x74]
mov esi, 1
cmp eax, esi
je 0x4614a7
mov eax, dword [ebx + 0x50]
test eax, eax
je 0x4614a7
mov eax, dword [esp + 0x10]
push ebx
mov dword [esp + 0x1c], esi
mov ecx, dword [eax + 0x58]
mov edx, dword [ecx]
call dword [edx + 0x68]
mov ecx, dword [ebx + 0x50]
call fcn.004c7b80
mov edi, eax
test edi, edi
je 0x46149d
mov eax, dword [edi]
push 0
push 0
mov ecx, edi
call dword [eax + 0x74]
cmp eax, esi
je 0x46149d
mov ecx, dword [esp + 0x10]
push 0x479
mov esi, dword [ecx + 0x64]
mov ecx, edi
call fcn.004a7660
mov ebp, dword [eax + 0x1d]
mov ecx, esi
add ebp, 4
call fcn.004c7b80
mov esi, eax
test esi, esi
je 0x46139d
push 0x479
mov ecx, esi
call fcn.004a7660
mov edx, dword [eax + 0x1d]
mov ecx, ebp
add edx, 4
call fcn.004c8440
test eax, eax
je 0x461399
mov ecx, esi
call fcn.004a8c30
mov esi, eax
test esi, esi
jne 0x46136d
jmp 0x46139d
test esi, esi
jne 0x4613d3
mov ebp, dword [esp + 0x10]
mov edx, dword [edi]
mov ecx, edi
mov al, byte [ebp + 9]
shr eax, 3
and eax, 1
push eax
push ebp
call dword [edx + 0xa8]
mov ecx, dword [esp + 0x14]
mov esi, eax
push 0
push ecx
mov ecx, dword [ebp + 0x64]
push esi
call fcn.004c65c0
push ebx
push edi
mov ecx, esi
call fcn.0045ce10
jmp 0x4613dc
push ebx
push edi
mov ecx, esi
call fcn.0045cf60
mov ecx, edi
call fcn.004a8c30
mov ebp, eax
test ebp, ebp
je 0x46149d
mov edx, dword [ebp]
push 0
push 0
mov ecx, ebp
call dword [edx + 0x74]
cmp eax, 1
je 0x46149d
mov eax, dword [esp + 0x10]
push 0x479
mov ecx, ebp
mov esi, dword [eax + 0x64]
call fcn.004a7660
mov edi, dword [eax + 0x1d]
mov ecx, esi
add edi, 4
call fcn.004c7b80
mov esi, eax
test esi, esi
je 0x461458
push 0x479
mov ecx, esi
call fcn.004a7660
mov edx, dword [eax + 0x1d]
mov ecx, edi
add edx, 4
call fcn.004c8440
test eax, eax
je 0x461454
mov ecx, esi
call fcn.004a8c30
mov esi, eax
test esi, esi
jne 0x461428
jmp 0x461458
test esi, esi
jne 0x461484
mov esi, dword [esp + 0x10]
mov edx, dword [ebp]
mov ecx, ebp
mov al, byte [esi + 9]
shr eax, 3
and eax, 1
push eax
push esi
call dword [edx + 0xa8]
mov ecx, dword [esp + 0x14]
push 0
push ecx
mov ecx, dword [esi + 0x64]
push eax
call fcn.004c65c0
jmp 0x46148c
push ebp
mov ecx, esi
call fcn.0045cfa0
mov ecx, ebp
call fcn.004a8c30
mov ebp, eax
test ebp, ebp
jne 0x4613ed
test ebx, ebx
je 0x4614c9
mov edx, dword [ebx]
push 1
jmp 0x4614c5
mov eax, dword [esp + 0x10]
test byte [eax + 9], 8
je 0x4614c9
mov ecx, dword [eax + 0x58]
push ebx
mov dword [esp + 0x1c], esi
mov eax, dword [ecx]
call dword [eax + 0x68]
test ebx, ebx
je 0x4614c9
mov edx, dword [ebx]
push esi
mov ecx, ebx
call dword [edx]
mov ebx, dword [esp + 0x1c]
test ebx, ebx
jne 0x4612e3
mov eax, dword [esp + 0x18]
test eax, eax
je 0x461b87
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x4c]
test ecx, ecx
je 0x461b87
mov edx, eax
mov eax, dword [edx + 0x68]
test eax, eax
je 0x461b87
mov eax, dword [eax + 0x1d]
add eax, 4
push eax
call fcn.00407560
test eax, eax
je 0x461537
mov eax, dword [eax + 0x9a]
cmp eax, 7
je 0x461b87
cmp eax, 5
je 0x461b87
cmp eax, 0x11
je 0x461b87
cmp eax, 9
je 0x461b87
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x64]
call fcn.004c7b80
mov ebx, eax
test ebx, ebx
je 0x4617fb
mov ecx, dword [ebx + 0x50]
test ecx, ecx
je 0x4617ea
call fcn.004c7b80
mov edi, eax
test edi, edi
je 0x4617ea
mov edx, dword [edi]
push 0
push 0
mov ecx, edi
call dword [edx + 0x74]
test eax, eax
jne 0x4617d9
lea ecx, [esp + 0x40]
call fcn.00444f30
lea ecx, [esp + 0x50]
call fcn.00444f30
lea ecx, [esp + 0x38]
call fcn.004d0980
xor esi, esi
lea ecx, [esp + 0x8c]
mov dword [esp + 0x38], esi
call fcn.00444f30
lea ecx, [esp + 0x9c]
call fcn.00444f30
lea ecx, [esp + 0x84]
call fcn.004d0980
lea ecx, [esp + 0x144]
mov dword [esp + 0x84], esi
call fcn.00454270
lea ecx, [esp + 0xf8]
call fcn.00454270
mov ebp, dword [edi + 0x58]
cmp ebp, esi
je 0x461760
mov ecx, ebp
call fcn.004c7b80
test eax, eax
je 0x461760
mov ecx, ebp
call fcn.004c7b80
mov edx, dword [eax]
push esi
push esi
mov ecx, eax
call dword [edx + 0x74]
test eax, eax
jne 0x461760
push 0x469
mov ecx, edi
call fcn.004a7660
mov eax, dword [eax + 0x1d]
lea ecx, [esp + 0x38]
push eax
call fcn.004d09d0
push 0x468
mov ecx, edi
call fcn.004a7660
mov ecx, dword [eax + 0x1d]
push ecx
lea ecx, [esp + 0x148]
call fcn.004cf700
push 0x46c
mov ecx, edi
call fcn.004a7660
mov edx, dword [eax + 0x1d]
lea ecx, [esp + 0x144]
push edx
call fcn.004ce1a0
mov ecx, ebp
call fcn.004c7b80
mov esi, eax
test esi, esi
je 0x4616de
mov eax, dword [esi]
push 0
push 0
mov ecx, esi
call dword [eax + 0x74]
test eax, eax
jne 0x4616de
push 0x469
mov ecx, esi
call fcn.004a7660
mov ecx, dword [eax + 0x1d]
push ecx
lea ecx, [esp + 0x88]
call fcn.004e5650
push 0x468
mov ecx, esi
call fcn.004a7660
mov edx, dword [eax + 0x1d]
lea ecx, [esp + 0xf8]
push edx
call fcn.004ce1a0
push 0x46c
mov ecx, esi
call fcn.004a7660
mov eax, dword [eax + 0x1d]
lea ecx, [esp + 0xf8]
push eax
call fcn.004ce1a0
mov ecx, esi
call fcn.004a8c30
mov esi, eax
test esi, esi
jne 0x46166e
lea ecx, [esp + 0x84]
push ecx
lea ecx, [esp + 0x3c]
call fcn.004e5f60
test eax, eax
jne 0x461760
lea edx, [esp + 0xf8]
lea ecx, [esp + 0x144]
push edx
call fcn.004cefb0
test eax, eax
jne 0x461760
mov ecx, ebp
call fcn.004c7b80
mov esi, eax
test esi, esi
je 0x46178a
mov eax, dword [esi]
push 0
push 0
mov ecx, esi
call dword [eax + 0x74]
test eax, eax
jne 0x46178a
push 1
push 0x1c
mov ecx, 0x565b30
call fcn.004a6ac0
test eax, eax
je 0x461745
push edi
push ebx
push esi
mov ecx, eax
call fcn.00461c90
jmp 0x461747
xor eax, eax
push eax
lea ecx, [esp + 0x24]
call fcn.004a6c60
mov ecx, esi
call fcn.004a8c30
mov esi, eax
test esi, esi
jne 0x461718
jmp 0x46178a
push 1
push 0x1c
mov ecx, 0x565b30
call fcn.004a6ac0
test eax, eax
je 0x46177e
push edi
push ebx
push edi
mov ecx, eax
call fcn.00461c90
jmp 0x461780
xor eax, eax
push eax
lea ecx, [esp + 0x24]
call fcn.004a6c60
push 0x469
mov ecx, edi
call fcn.004a7660
mov ecx, dword [eax + 0x1d]
push ecx
lea ecx, [esp + 0xd4]
call fcn.004e5650
push 0x468
mov ecx, edi
call fcn.004a7660
mov edx, dword [eax + 0x1d]
lea ecx, [esp + 0x190]
push edx
call fcn.004ce1a0
mov eax, dword [esp + 0x24]
xor ecx, ecx
mov eax, dword [eax + 8]
cmp eax, ecx
je 0x4617d9
mov dword [eax + 0x18], ecx
mov eax, dword [eax + 8]
cmp eax, ecx
jne 0x4617cf
mov ecx, edi
call fcn.004a8c30
mov edi, eax
test edi, edi
jne 0x461567
mov ecx, ebx
call fcn.004a8c30
mov ebx, eax
test ebx, ebx
jne 0x46154d
mov edi, dword [esp + 0x20]
test edi, edi
je 0x461b87
xor ebx, ebx
mov esi, dword [edi + 0xc]
push 0x46c
mov ecx, esi
call fcn.004a7660
mov ecx, eax
call fcn.004c8840
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x78]
cmp eax, 0x3c
jne 0x46183d
mov ecx, dword [esi + 0x5c]
cmp ecx, ebx
je 0x461838
mov eax, dword [ecx]
push 1
call dword [eax]
mov dword [esi + 0x5c], ebx
jmp 0x461873
mov ecx, dword [esi + 0x4c]
cmp ecx, ebx
je 0x46184a
mov edx, dword [ecx]
push 1
call dword [edx]
mov dword [esi + 0x4c], ebx
mov esi, dword [edi + 0x14]
mov ecx, dword [esi + 0x5c]
cmp ecx, ebx
je 0x46185d
mov eax, dword [ecx]
push 1
call dword [eax]
push 0x46c
mov ecx, esi
mov dword [esi + 0x5c], ebx
call fcn.004a7660
mov ecx, eax
call fcn.004c8840
mov edi, dword [edi + 4]
cmp edi, ebx
jne 0x461809
cmp dword [esp + 0x20], ebx
je 0x461b87
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx + 0x64]
call fcn.004c7b80
mov edi, eax
cmp edi, ebx
mov dword [esp + 0x14], edi
je 0x461b87
mov ecx, edi
call fcn.004a8c30
mov ecx, dword [edi + 0x50]
mov dword [esp + 0x28], eax
cmp ecx, ebx
je 0x4618d2
call fcn.004c7b80
test eax, eax
je 0x4618d2
mov ecx, dword [edi + 0x50]
call fcn.004c7b80
mov edx, dword [eax]
push ebx
push ebx
mov ecx, eax
call dword [edx + 0x74]
test eax, eax
je 0x461b77
mov eax, dword [edi]
push ebx
push ebx
mov ecx, edi
call dword [eax + 0x74]
cmp eax, 1
je 0x461b77
push 0x8a6
mov ecx, edi
call fcn.004a7660
mov eax, dword [eax + 0x1d]
add eax, 4
mov ecx, eax
mov dword [esp + 0x30], eax
call fcn.004cda30
cmp eax, 0x3d
mov dword [esp + 0x1c], eax
je 0x461913
cmp eax, 0x3e
jne 0x461b77
lea ecx, [esp + 0x5c]
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x50], ebx
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], ebx
call fcn.004cf970
lea ecx, [esp + 0x38]
mov dword [esp + 0x38], ebx
call fcn.004cf660
lea ecx, [esp + 0xa8]
mov dword [esp + 0x88], ebx
mov dword [esp + 0x8c], ebx
mov dword [esp + 0x90], ebx
mov dword [esp + 0x9c], ebx
mov dword [esp + 0xa0], ebx
mov dword [esp + 0xa4], ebx
call fcn.004cf970
lea ecx, [esp + 0x84]
mov dword [esp + 0x84], ebx
call fcn.004cf660
push 0x479
mov ecx, edi
call fcn.004a7660
push 0x468
mov ecx, edi
mov dword [esp + 0x38], eax
call fcn.004a7660
mov ecx, dword [eax + 0x1d]
mov dword [esp + 0x2c], eax
push ecx
lea ecx, [esp + 0x88]
call fcn.004cf6e0
mov esi, dword [esp + 0x20]
cmp esi, ebx
je 0x461b5e
mov edx, dword [esp + 0x88]
mov eax, dword [esp + 0x8c]
or edx, eax
jne 0x4619ee
mov eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0xa0]
or eax, ecx
je 0x461b5e
mov eax, dword [esi + 0x18]
mov ebp, dword [esi + 0xc]
cmp eax, ebx
jne 0x461a90
mov ecx, dword [esp + 0x2c]
mov edx, dword [ecx + 0x1d]
lea ecx, [esp + 0x38]
push edx
call fcn.004cf700
mov eax, dword [esp + 0xd8]
mov ecx, dword [esp + 0xdc]
or eax, ecx
mov eax, dword [esp + 0x1c]
je 0x461a4e
cmp eax, 0x3e
jne 0x461a53
push 0x469
mov ecx, ebp
call fcn.004a7660
mov ecx, dword [eax + 0x1d]
add ecx, 8
push ecx
lea ecx, [esp + 0x3c]
call fcn.004cec70
lea edx, [esp + 0xd8]
push edx
jmp 0x461a7c
cmp eax, 0x3e
je 0x461a58
cmp eax, 0x3d
jne 0x461a85
push 0x468
mov ecx, ebp
call fcn.004a7660
mov eax, dword [eax + 0x1d]
lea ecx, [esp + 0x38]
add eax, 4
push eax
call fcn.004cec70
lea ecx, [esp + 0x194]
push ecx
lea ecx, [esp + 0x3c]
call fcn.004ced00
lea ecx, [esp + 0x38]
call fcn.004cf590
jmp 0x461aa1
lea edx, [esp + 0x84]
lea ecx, [esp + 0x38]
push edx
call fcn.004cf700
mov eax, dword [ebp]
push ebx
push 0x847
mov ecx, ebp
call dword [eax + 0x64]
mov ecx, 0x5c
mov edi, eax
call fcn.004a38d0
cmp eax, ebx
je 0x461adf
mov ecx, dword [esp + 0x34]
push edi
mov edx, dword [ecx + 0x1d]
mov ecx, dword [esp + 0x34]
push ecx
lea ecx, [esp + 0x40]
add edx, 4
push ecx
push ebx
push edx
mov ecx, eax
call fcn.00468070
jmp 0x461ae1
xor eax, eax
mov edx, dword [edi]
push ebx
push eax
mov ecx, edi
call dword [edx + 0x60]
mov ecx, dword [esi + 0x10]
push 0x468
call fcn.004a7660
lea ecx, [esp + 0x38]
push ecx
mov ecx, dword [eax + 0x1d]
call fcn.004ce9d0
mov ecx, dword [esi + 0x14]
mov eax, dword [esi + 0xc]
cmp eax, ecx
je 0x461b25
push 0x46c
call fcn.004a7660
mov ecx, dword [eax + 0x1d]
lea edx, [esp + 0x38]
push edx
call fcn.004ce9d0
lea eax, [esp + 0x38]
lea ecx, [esp + 0x84]
push eax
call fcn.004ce520
push 0x46c
mov ecx, ebp
call fcn.004a7660
lea ecx, [esp + 0x38]
push ecx
mov ecx, dword [eax + 0x1d]
call fcn.004ce9d0
mov esi, dword [esi + 4]
mov edi, dword [esp + 0x14]
cmp esi, ebx
jne 0x4619c6
mov edx, dword [esp + 0x10]
push edi
mov ecx, dword [edx + 0x64]
mov eax, dword [ecx]
call dword [eax + 0x68]
cmp edi, ebx
je 0x461b77
mov edx, dword [edi]
push 1
mov ecx, edi
call dword [edx]
mov edi, dword [esp + 0x28]
cmp edi, ebx
mov dword [esp + 0x14], edi
jne 0x46189e
mov edi, dword [esp + 0x10]
mov ecx, dword [edi + 0x64]
call fcn.004c7b80
mov ebp, dword [esp + 0x18]
mov esi, eax
test esi, esi
je 0x461bd5
mov ecx, esi
call fcn.004a8c30
mov ebx, eax
mov eax, dword [esi]
push 0
push 0
mov ecx, esi
call dword [eax + 0x74]
test eax, eax
je 0x461bcf
mov ecx, dword [edi + 0x64]
push esi
mov edx, dword [ecx]
call dword [edx + 0x68]
test esi, esi
je 0x461bca
mov eax, dword [esi]
push 1
mov ecx, esi
call dword [eax]
mov ebp, 1
test ebx, ebx
mov esi, ebx
jne 0x461b9d
test ebp, ebp
mov bl, 0xfb
je 0x461c62
mov cl, byte [edi + 8]
not cl
test cl, 4
je 0x461c62
mov ecx, edi
call fcn.004c7f40
mov ecx, dword [edi + 0x64]
push 0
push 0x4c7eb0
call fcn.004c7b20
mov ecx, dword [edi + 0x58]
push 0
push 0x4c7eb0
call fcn.004c7b20
mov ecx, dword [edi + 0x5c]
push 0
push 0x4c7eb0
call fcn.004c7b20
mov ecx, dword [edi + 0x60]
push 0
push 0x4c7eb0
call fcn.004c7b20
mov eax, dword [edi + 0x58]
push 8
mov cl, byte [eax + 8]
and cl, bl
mov byte [eax + 8], cl
mov ecx, dword [edi + 0x58]
call fcn.004a9240
mov eax, dword [edi + 0x58]
push 8
mov dl, byte [eax + 8]
or dl, 4
mov byte [eax + 8], dl
mov eax, dword [edi + 0x64]
mov cl, byte [eax + 8]
and cl, bl
mov byte [eax + 8], cl
mov ecx, dword [edi + 0x64]
call fcn.004a9240
mov eax, dword [edi + 0x58]
mov cl, byte [eax + 8]
and cl, bl
mov byte [eax + 8], cl
mov edi, dword [edi + 0x64]
lea ecx, [esp + 0x20]
and byte [edi + 8], bl
call fcn.004a6c00
pop edi
pop ebp
pop ebx
pop esi
add esp, 0x1cc
ret