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

Disassembly:
push edi
push esi
push ebp
push ebx
push ecx
mov eax, 0x44
call fcn.00602270
mov ecx, dword [esp + 0x44]
mov ebx, ecx
mov esi, dword [esp + 0x60]
mov ebp, dword [esp + 0x64]
movzx eax, word [esp + 0x68]
mov word [ebx + 0x1f], ax
mov dword [ebx + 0xf], esi
xor edx, edx
mov dl, byte [ebx + 9]
and edx, 0xf7
xor eax, eax
mov al, byte [esi + 9]
and eax, 8
or edx, eax
mov byte [ebx + 9], dl
movzx edi, word [esi + 0x13]
mov word [ebx + 0x13], di
mov al, byte [esi + 0x16]
mov byte [ebx + 0x16], al
mov al, byte [esi + 0x15]
mov byte [ebx + 0x15], al
mov dword [ebx + 0x29], ebp
xor eax, eax
mov al, byte [esi + 0xa]
shl eax, 0x1a
and eax, 0xfc000000
cmp eax, 0x14000000
je 0x594eb1
mov dword [ebx + 0x31], esi
mov ecx, dword [esi + 0x25]
mov dword [ebx + 0x21], ecx
test ebp, ebp
jne 0x59475b
mov eax, dword [esi + 0x35]
mov dword [ebx + 0x29], eax
mov eax, dword [esi + 0x31]
mov dword [ebx + 0x35], eax
mov dword [ebx + 0x69], 1
test ebp, ebp
je 0x5947ac
mov ecx, ebx
call fcn.004f0a38
mov esi, eax
test esi, esi
je 0x5947a9
mov ebp, dword [esi]
mov ecx, esi
call dword [ebp + 0x3c]
mov ebp, eax
mov edi, dword [ebx]
mov ecx, ebx
call dword [edi + 0x3c]
and ebp, 0xffff
and eax, 0xffff
cmp ebp, eax
jne 0x5947a4
mov eax, dword [esi + 0x69]
inc eax
mov dword [ebx + 0x69], eax
mov ecx, dword [ebx + 0x21]
jmp 0x5947ac
mov ecx, dword [ebx + 0x21]
jmp 0x5947ac
mov ecx, dword [ebx + 0x21]
xor edx, edx
mov dl, byte [ebx + 0x91]
and edx, 0xfffffffe
mov edi, dword [esp + 0x74]
and edi, 1
or edx, edi
mov byte [ebx + 0x91], dl
xor eax, eax
mov al, byte [ebx + 0x90]
and eax, 0xdf
mov esi, dword [esp + 0x78]
and esi, 1
shl esi, 5
or eax, esi
mov byte [ebx + 0x90], al
mov ebp, dword [esp + 0x6c]
mov dword [ebx + 0x2d], ebp
and edx, 0xfd
xor eax, eax
mov al, byte [ebp + 0x11b]
and eax, 0x40
shr eax, 6
and eax, 1
add eax, eax
or edx, eax
mov byte [ebx + 0x91], dl
call fcn.0051b988
test eax, eax
je 0x59483b
mov ecx, dword [ebx + 0x29]
mov eax, dword [ecx]
call dword [eax + 0x7c]
push edx
push eax
mov ecx, dword [ebx + 0x21]
call fcn.0051bad4
cmp eax, 2
jne 0x59483b
mov al, byte [ebx + 0x91]
or al, 4
mov byte [ebx + 0x91], al
movzx ecx, word [esp + 0x68]
call fcn.0058f970
mov dword [ebx + 0x25], eax
mov ebp, dword [ebx + 0x21]
add ebp, 0x9f
push ebp
push ebx
mov ecx, eax
call fcn.005600e4
mov dword [ebx + 0x25], eax
mov ecx, eax
call fcn.005900e8
test eax, eax
je 0x594878
mov ecx, dword [ebx + 0x25]
call fcn.005900e8
push eax
mov ecx, ebx
call fcn.004f0a94
mov eax, dword [ebx + 0x21]
add eax, 0x9f
push eax
mov ecx, dword [ebx + 0x25]
call fcn.0055f8b4
mov ebp, eax
mov edi, dword [ebx + 0x25]
mov esi, dword [edi + 8]
movzx eax, word [esi + 0x10]
test eax, eax
je 0x5948c9
lea esi, [eax + eax]
add esi, esi
lea ecx, [esi + eax*8 + 0x690620]
lea esi, [esp + 0x20]
lea edi, [esp + 0x1c]
push edi
push esi
push 0x3a
call fcn.0051ab7c
movzx ecx, word [esp + 0x20]
call fcn.00523d5c
mov dword [ebx + 0x4d], eax
mov edi, dword [ebx + 0x25]
mov esi, dword [edi + 8]
mov eax, dword [esp + 0x5c]
movzx eax, byte [eax + 0x5e]
and eax, 2
test eax, 0xfffffffe
je 0x594922
movzx eax, word [esi + 0xa]
test eax, eax
je 0x594922
call fcn.005459b8
mov dword [ebx + 0x6d], eax
mov edi, dword [ebx + 0x25]
mov esi, dword [edi + 8]
movzx ecx, word [esi + 0xa]
call fcn.0051c898
mov esi, eax
test esi, esi
je 0x594ea6
mov ecx, esi
mov edx, ebx
call fcn.00595074
test eax, eax
je 0x594e9b
mov esi, dword [esi + 2]
test esi, esi
jne 0x594904
mov edi, dword [ebx + 0x25]
mov esi, dword [edi + 8]
mov esi, dword [esi + 0x32]
mov dword [ebx + 0x88], esi
mov esi, dword [edi + 8]
movzx edi, word [esi + 8]
test edi, edi
je 0x5949a8
mov ecx, 0x74c020
push 0
push 0x14
call fcn.004e2a04
mov esi, eax
test esi, esi
je 0x59495c
push 0
push 0x5a18b0
push 0x1f
mov ecx, esi
call fcn.004e7688
jmp 0x59495e
xor esi, esi
mov dword [ebx + 0x45], esi
mov edi, dword [ebx + 0x25]
mov esi, dword [edi + 8]
movzx ecx, word [esi + 8]
call fcn.0051c898
mov edi, eax
test edi, edi
je 0x594e90
mov ecx, dword [ebx + 0x45]
mov dword [esp + 0x14], ecx
movzx esi, word [edi]
mov word [esp + 0x18], si
lea esi, [esp + 0x18]
push esi
call fcn.004e84ec
test eax, eax
je 0x594e60
mov edi, dword [edi + 2]
test edi, edi
jne 0x59497a
mov esi, dword [ebx + 0x25]
mov esi, dword [esi + 8]
movzx esi, word [esi + 2]
test esi, esi
je 0x594a2d
mov ecx, 0x74c010
push 0
push 8
call fcn.004e2a04
test eax, eax
je 0x5949cb
xor esi, esi
mov dword [eax], esi
mov dword [eax + 4], esi
jmp 0x5949cd
xor eax, eax
mov dword [ebx + 0x39], eax
mov dword [esp + 0x3c], ebx
mov esi, dword [esp + 0x70]
mov dword [esp + 0x40], esi
mov esi, dword [esp + 0x5c]
mov dword [esp + 0x44], esi
mov edi, dword [ebx + 0x25]
mov esi, dword [edi + 8]
movzx ecx, word [esi + 2]
call fcn.0051c898
mov esi, eax
test esi, esi
je 0x594a0f
lea edx, [esp + 0x3c]
mov ecx, esi
call fcn.00594ff8
test eax, eax
je 0x594a0f
mov esi, dword [esi + 2]
test esi, esi
jne 0x5949f9
mov edi, dword [ebx + 0x39]
mov esi, dword [edi]
test esi, esi
jne 0x594d19
push 0x74f4a0
mov ecx, ebx
call fcn.004f0a94
jmp 0x594d19
mov ecx, 0x74c010
push 0
push 8
call fcn.004e2a04
test eax, eax
je 0x594a48
xor esi, esi
mov dword [eax], esi
mov dword [eax + 4], esi
jmp 0x594a4a
xor eax, eax
mov dword [ebx + 0x3d], eax
mov esi, dword [ebx + 0x25]
mov edx, dword [esi + 8]
movzx edi, word [edx + 0x12]
test edi, edi
jne 0x594ad1
mov edi, dword [0x756078]
mov dword [esp + 0x34], edi
mov dword [esp + 0x30], ebx
mov edi, dword [esp + 0x5c]
mov dword [esp + 0x38], edi
mov esi, dword [esi + 8]
movzx ecx, word [esi + 4]
call fcn.0051c898
mov esi, eax
test esi, esi
je 0x594a99
lea edx, [esp + 0x30]
mov ecx, esi
call fcn.00594f6c
test eax, eax
je 0x594a99
mov esi, dword [esi + 2]
test esi, esi
jne 0x594a83
mov edi, dword [ebx + 0x25]
mov esi, dword [edi + 8]
movzx ecx, word [esi + 6]
call fcn.0051c898
mov esi, eax
test esi, esi
je 0x594ce6
lea edx, [esp + 0x30]
mov ecx, esi
call fcn.00594ee4
test eax, eax
je 0x594ce6
mov esi, dword [esi + 2]
test esi, esi
jne 0x594ab2
jmp 0x594ce6
xor eax, eax
mov al, byte [ebx + 9]
and eax, 8
and eax, 0xfffffff8
cmp eax, 8
je 0x594a5b
xor al, al
mov byte [esp + 8], al
xor eax, eax
mov al, byte [ebx + 0x91]
and eax, 2
shr eax, 1
mov dword [esp + 0x10], eax
mov esi, dword [ebx + 0x21]
movsx edi, word [esi + 0x3d]
movzx ecx, word [edx + 4]
call fcn.0051c898
mov esi, eax
test esi, esi
je 0x594e24
mov eax, dword [ebx + 0x25]
mov eax, dword [eax + 8]
movzx eax, word [eax + 0x12]
movzx edx, word [esi]
cmp edx, eax
jne 0x594d4d
mov eax, 1
test edi, edi
jle 0x594be4
mov dword [esp + 0xc], esi
mov dword [esp + 4], edi
mov dword [esp], ebp
mov esi, eax
mov ecx, 0x74c0a0
push 1
push 0x86
call fcn.004e2a04
mov ebp, eax
test ebp, ebp
je 0x594b65
mov ecx, ebp
call fcn.0051ebb8
jmp 0x594b67
xor ebp, ebp
push ebp
mov ecx, dword [ebx + 0x3d]
call fcn.0055f714
movsx edx, si
mov edi, dword [esp + 0xc]
movzx eax, word [edi]
mov edi, 1
push edi
push edi
push ebx
push eax
push edx
mov edi, dword [esp + 0x70]
push edi
mov ecx, ebp
call fcn.0051da94
mov al, byte [ebp + 0x84]
or al, 1
mov byte [ebp + 0x84], al
mov al, byte [ebp + 0x83]
and al, 0xf7
or al, 0
mov byte [ebp + 0x83], al
inc word [ebx + 0x75]
mov edi, dword [ebp + 0x21]
mov edi, dword [edi + 0x96]
cmp edi, 1
je 0x594bc9
mov eax, 1
mov dword [esp + 0x10], eax
mov ecx, ebp
call fcn.0056694c
inc esi
mov ebp, dword [esp + 4]
cmp esi, ebp
jle 0x594b45
mov esi, dword [esp + 0xc]
mov ebp, dword [esp]
mov esi, dword [esi + 2]
test esi, esi
je 0x594c7e
mov dword [esp], ebp
mov ecx, 0x74c0a0
push 1
push 0x86
call fcn.004e2a04
mov ebp, eax
test ebp, ebp
je 0x594c12
mov ecx, ebp
call fcn.0051ebb8
jmp 0x594c14
xor ebp, ebp
push ebp
mov ecx, dword [ebx + 0x3d]
call fcn.0055f714
mov edi, 1
movzx eax, word [esi]
push 0
push edi
push ebx
push eax
push edi
mov edi, dword [esp + 0x70]
push edi
mov ecx, ebp
call fcn.0051da94
mov al, byte [ebp + 0x84]
or al, 1
mov byte [ebp + 0x84], al
mov al, byte [ebp + 0x83]
and al, 0xf7
or al, 0
mov byte [ebp + 0x83], al
inc word [ebx + 0x75]
mov edi, dword [ebp + 0x21]
mov ebp, dword [edi + 0x96]
cmp ebp, 1
je 0x594c70
mov eax, 1
mov dword [esp + 0x10], eax
mov esi, dword [esi + 2]
test esi, esi
jne 0x594bf2
mov ebp, dword [esp]
mov esi, dword [0x756084]
mov dword [esp + 0x28], esi
mov dword [esp + 0x24], ebx
mov esi, dword [esp + 0x5c]
mov dword [esp + 0x2c], esi
mov edi, dword [ebx + 0x25]
mov esi, dword [edi + 8]
movzx ecx, word [esi + 6]
call fcn.0051c898
mov esi, eax
test esi, esi
je 0x594cbf
lea edx, [esp + 0x24]
mov ecx, esi
call fcn.00594ee4
test eax, eax
je 0x594cbf
mov esi, dword [esi + 2]
test esi, esi
jne 0x594ca9
mov eax, dword [esp + 0x10]
test eax, eax
je 0x594ce6
mov al, byte [ebx + 0x91]
or al, 2
mov byte [ebx + 0x91], al
mov esi, dword [ebx + 0x2d]
mov al, byte [esi + 0x11b]
or al, 0x20
mov byte [esi + 0x11b], al
mov edi, dword [ebx + 0x3d]
mov esi, dword [edi]
test esi, esi
jne 0x594cfb
push 0x74f4a0
mov ecx, ebx
call fcn.004f0a94
mov esi, dword [esp + 0x70]
test esi, esi
je 0x594d3a
mov ecx, dword [esp + 0x70]
call fcn.005950e0
mov esi, dword [ebx + 0x2d]
push eax
push ebx
mov ecx, dword [esi + 0x5d]
call fcn.005951cc
test ebp, ebp
je 0x594d30
mov esi, dword [ebx + 0x21]
add esi, 0x9f
push esi
push ebp
mov ecx, dword [ebx + 0x25]
call fcn.0055f8d8
add esp, 0x48
pop ebx
pop ebp
pop esi
pop edi
ret 0x20
mov edi, dword [ebx + 0x2d]
mov ecx, dword [edi + 0x5d]
mov esi, dword [ecx + 0xc]
inc esi
push esi
push ebx
call fcn.005951cc
jmp 0x594d19
mov dword [esp + 4], edi
mov dword [esp], ebp
mov ecx, 0x74c0a0
push 1
push 0x86
call fcn.004e2a04
mov ebp, eax
test ebp, ebp
je 0x594d74
mov ecx, ebp
call fcn.0051ebb8
jmp 0x594d76
xor ebp, ebp
push ebp
mov ecx, dword [ebx + 0x3d]
call fcn.0055f714
mov edi, 1
movzx eax, word [esi]
push 0
push edi
push ebx
push eax
push edi
mov edi, dword [esp + 0x70]
push edi
mov ecx, ebp
call fcn.0051da94
xor eax, eax
mov al, byte [ebx + 0x91]
and eax, 2
and eax, 0xfffffffe
cmp eax, 2
je 0x594e35
mov al, byte [esp + 8]
test al, al
jne 0x594dc6
mov edi, dword [ebp + 0x21]
mov edi, dword [edi + 0x96]
cmp edi, 2
jne 0x594df5
mov al, 1
mov byte [esp + 8], al
mov al, byte [ebp + 0x84]
or al, 1
mov byte [ebp + 0x84], al
mov al, byte [ebp + 0x83]
and al, 0xf7
mov byte [ebp + 0x83], al
inc word [ebx + 0x75]
mov eax, 1
mov dword [esp + 0x10], eax
mov esi, dword [esi + 2]
test esi, esi
je 0x594e1d
mov ebp, dword [ebx + 0x25]
mov ebp, dword [ebp + 8]
movzx ebp, word [ebp + 0x12]
movzx edi, word [esi]
cmp edi, ebp
jne 0x594d54
mov edi, dword [esp + 4]
mov ebp, dword [esp]
jmp 0x594b2b
mov edi, dword [esp + 4]
mov ebp, dword [esp]
push 0x74f6dc
mov ecx, ebx
call fcn.004f0a94
jmp 0x594b2b
mov al, byte [ebp + 0x84]
or al, 1
mov byte [ebp + 0x84], al
mov al, byte [ebp + 0x83]
and al, 0xf7
mov byte [ebp + 0x83], al
inc word [ebx + 0x75]
mov eax, 1
mov dword [esp + 0x10], eax
jmp 0x594df5
mov ecx, 0x31
call fcn.004dbd30
mov esi, eax
test esi, esi
je 0x594e80
movzx eax, word [edi]
push ebx
push 1
push eax
mov ecx, esi
call fcn.005a8d6c
jmp 0x594e82
xor esi, esi
push esi
mov ecx, dword [ebx + 0x45]
call fcn.004e76b0
jmp 0x59499b
mov esi, dword [ebx + 0x25]
mov esi, dword [esi + 8]
jmp 0x5949a8
mov edi, dword [ebx + 0x25]
mov esi, dword [edi + 8]
jmp 0x594922
mov edi, dword [ebx + 0x25]
mov esi, dword [edi + 8]
jmp 0x594922
movzx eax, word [esp + 0x68]
push eax
push esi
push 5
mov ecx, ebx
call fcn.004f0994
mov esi, dword [ebx + 0x29]
mov eax, dword [ebx + 0xf]
test esi, esi
jne 0x594ed1
mov esi, dword [eax + 0x29]
mov dword [ebx + 0x29], esi
mov ecx, dword [eax + 0x21]
mov dword [ebx + 0x21], ecx
mov esi, dword [eax + 0x31]
mov dword [ebx + 0x31], esi
jmp 0x59475b