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

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x71c051
push eax
mov dword fs:[0], esp
sub esp, 0x50
push esi
mov esi, ecx
mov eax, dword [esi]
call dword [eax + 0x94]
cmp eax, 1
jne 0x517a94
mov ecx, esi
call fcn.0063e7f0
cmp eax, 1
je 0x517aa0
mov ecx, esi
call fcn.004ef890
cmp eax, 1
jne 0x517ab7
mov eax, dword [0x745dc4]
pop esi
mov ecx, dword [esp + 0x50]
mov dword fs:[0], ecx
add esp, 0x5c
ret 4
push ebx
push ebp
push edi
push 2
mov ecx, esi
call fcn.004f87d0
mov edi, dword [esp + 0x70]
mov ecx, dword [edi + 0x3c]
mov edx, dword [edi + 0x40]
mov eax, dword [edi + 0x38]
mov dword [esp + 0x20], ecx
mov ecx, dword [edi + 0x44]
mov dword [esp + 0x34], edx
mov edx, dword [0x7a39fc]
mov dword [esp + 0x10], eax
mov dword [esp + 0x18], ecx
mov ecx, dword [edx + 8]
push eax
call fcn.004ae770
mov ebp, eax
xor ebx, ebx
cmp ebp, ebx
mov dword [esp + 0x70], ebp
jne 0x517b0e
mov dword [esi + 0x978], ebx
mov eax, dword [0x745dc4]
jmp 0x5181ef
mov eax, dword [0x7a39fc]
mov edx, dword [esp + 0x20]
mov ecx, dword [eax + 8]
push edx
call fcn.004ae760
cmp eax, ebx
mov dword [esp + 0x48], eax
je 0x517afe
mov eax, dword [esp + 0x10]
push ebx
push ebx
push eax
mov ecx, esi
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x68], 0
call fcn.004f6000
test eax, eax
jne 0x517c9f
cmp dword [esp + 0x18], ebx
je 0x517c9f
mov eax, dword [esp + 0x10]
push ebx
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x5c]
push edx
mov edx, dword [esi]
mov ebp, 1
push eax
mov ecx, esi
mov dword [esp + 0x40], ebp
mov dword [esp + 0x54], ebp
mov dword [esp + 0x28], ebx
call dword [edx + 0x30]
mov ecx, eax
call fcn.004ee440
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
lea eax, [esp + 0x60]
push eax
push ebp
lea ecx, [esp + 0x84]
push ecx
push ebp
xor ecx, ecx
mov cx, word [edi + 0x6c]
lea edx, [esp + 0x78]
push edx
push 3
lea eax, [esp + 0x70]
push eax
push 3
push ecx
push 0x38
mov ecx, esi
call fcn.004ccb00
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
lea edx, [esp + 0x70]
push edx
xor eax, eax
mov ax, word [edi + 0x6c]
push 3
push eax
push 0x13
mov ecx, esi
call fcn.004ccb00
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
lea ecx, [esp + 0x84]
push ecx
push ebp
lea edx, [esp + 0x64]
push edx
push 2
lea eax, [esp + 0x6c]
push eax
push 2
lea ecx, [esp + 0x88]
push ecx
xor eax, eax
mov ax, word [edi + 0x6c]
push ebp
lea edx, [esp + 0x70]
push edx
push 3
mov ecx, esi
push eax
push 0x11
call fcn.004ccb00
push ebx
mov edx, dword [esp + 0x20]
push ebx
mov eax, dword [esp + 0x38]
push ebx
lea ecx, [esp + 0x44]
push ecx
mov ecx, dword [esp + 0x20]
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push edx
mov edx, dword [esi + 0x8c]
push eax
push ecx
xor ecx, ecx
mov cx, word [edi + 0x6c]
push edx
lea eax, [esp + 0x90]
push eax
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0
mov dword [esp + 0x80], 0
push ecx
mov ecx, esi
call fcn.004f8a50
jmp 0x5181ea
mov edx, dword [ebp]
mov ebx, dword [esi + 0xa74]
push 0
mov ecx, ebp
call dword [edx + 0x10]
push eax
push 7
mov ecx, ebx
call fcn.005aa570
movsx eax, al
mov dword [esp + 0x28], eax
mov eax, dword [esi + 0x978]
test eax, eax
jne 0x517db1
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
mov ebx, 1
lea ecx, [esp + 0x60]
push ecx
push ebx
lea edx, [esp + 0x84]
push edx
push ebx
lea eax, [esp + 0x78]
push eax
xor edx, edx
mov dword [esi + 0x978], ebx
mov dx, word [edi + 0x6c]
push 3
lea ecx, [esp + 0x70]
push ecx
push 3
mov ecx, esi
mov dword [esp + 0xd8], ebx
push edx
push 0x38
mov dword [esp + 0x98], 0x2721
mov dword [esp + 0x9c], 0x3f800000
mov dword [esp + 0xa8], 0x40000000
call fcn.004ccb00
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
lea eax, [esp + 0xb8]
push eax
push ebx
lea ecx, [esp + 0x88]
push ecx
push 2
xor ecx, ecx
mov cx, word [edi + 0x6c]
lea edx, [esp + 0x84]
push edx
push 2
lea eax, [esp + 0x88]
push eax
push ebx
push ecx
push 6
mov ecx, esi
call fcn.004ccb00
jmp 0x5181ea
mov ecx, dword [0x7a3a28]
push 0x14
mov edi, 1
push edi
call fcn.00550b60
movzx edx, ax
cmp dword [esi + 0x4e0], edi
mov dword [esp + 0x24], edx
jne 0x517ddd
mov dword [esp + 0x2c], 0
jmp 0x517de9
mov dword [esp + 0x2c], edi
mov dword [esp + 0x24], 0x14
mov edx, dword [ebp + 0x128]
mov ebx, dword [0x746708]
xor eax, eax
xor edi, edi
test edx, edx
jle 0x517e4a
mov ebp, dword [ebp + 0x124]
mov dword [esp + 0x38], ebp
jmp 0x517e10
mov ecx, dword [ebp]
mov cx, word [ecx + 8]
movzx ebp, cx
cmp ebp, ebx
jg 0x517e46
movzx ebp, cx
cmp ebp, ebx
je 0x517eaf
mov ebp, dword [0x746690]
movzx ecx, cx
cmp ecx, ebp
je 0x517eaf
mov ebp, dword [esp + 0x38]
inc eax
add ebp, 4
cmp eax, edx
mov dword [esp + 0x38], ebp
jl 0x517e10
mov ebp, dword [esp + 0x70]
test edi, edi
mov dword [esp + 0x14], 0
je 0x517f74
mov ax, word [edi + 8]
movzx edx, ax
cmp edx, ebx
jne 0x517ebe
push 0
mov ecx, edi
call fcn.00503690
push str.Save_DC
lea ecx, [esp + 0x3c]
mov ebx, eax
call fcn.005e5a90
mov eax, dword [0x7a3a28]
mov eax, dword [eax + 0xb8]
mov eax, dword [eax + 0x90]
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x3c]
push edx
push ebx
mov ecx, eax
mov dword [esp + 0x74], 0
call fcn.00413660
lea ecx, [esp + 0x38]
jmp 0x517f14
mov ebp, dword [esp + 0x70]
mov ecx, dword [ebp + 0x124]
mov edi, dword [ecx + eax*4]
jmp 0x517e4a
mov ecx, dword [0x746690]
movzx eax, ax
cmp eax, ecx
jne 0x517f2a
push 0
mov ecx, edi
call fcn.00503690
push str.Subs_Save
lea ecx, [esp + 0x50]
mov ebx, eax
call fcn.005e5a90
mov ecx, dword [0x7a3a28]
mov eax, dword [ecx + 0xb8]
mov eax, dword [eax + 0x94]
lea edx, [esp + 0x14]
push edx
lea ecx, [esp + 0x50]
push ecx
push ebx
mov ecx, eax
mov dword [esp + 0x74], 1
call fcn.00413660
lea ecx, [esp + 0x4c]
mov dword [esp + 0x68], 0xffffffff
call fcn.005e5c20
mov eax, dword [esp + 0x14]
cmp eax, 1
jge 0x517f33
mov eax, 1
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
add edx, ecx
cmp edx, eax
jl 0x517f4f
mov eax, dword [edi]
mov edi, dword [edi + 4]
push edi
push eax
mov ecx, ebp
call fcn.004d06c0
push 0x34
call fcn.006fa7e6
add esp, 4
mov dword [esp + 0x70], eax
test eax, eax
mov dword [esp + 0x68], 2
je 0x517fb6
mov ecx, eax
call fcn.004d69f0
mov edi, eax
jmp 0x517fb8
push 0
push 0x37
mov ecx, esi
call fcn.004ede10
mov edx, dword [ebp]
push 0
mov ecx, ebp
call dword [edx + 0x9c]
mov di, ax
mov eax, dword [ebp]
push 1
mov ecx, ebp
call dword [eax + 0x98]
cmp di, ax
jl 0x517f4f
push 0
push 0x38
mov ecx, esi
call fcn.004ede10
mov eax, dword [0x745dc4]
jmp 0x5181ef
xor edi, edi
mov eax, dword [esi + 4]
push eax
push 0
mov ecx, edi
mov dword [esp + 0x70], 0xffffffff
call fcn.004d7780
push 0x14a
push 0
mov ecx, edi
call fcn.004d76b0
mov ebx, dword [esp + 0x24]
push ebx
push 1
mov ecx, edi
call fcn.004d76b0
mov eax, dword [esp + 0x28]
push eax
push 2
mov ecx, edi
call fcn.004d76b0
mov ecx, dword [esp + 0x14]
push ecx
push 3
mov ecx, edi
call fcn.004d76b0
mov edx, dword [esp + 0x2c]
push edx
push 4
mov ecx, edi
call fcn.004d76b0
mov eax, dword [esp + 0x28]
add ebx, eax
cmp ebx, dword [esp + 0x14]
jl 0x518023
push 1
jmp 0x518031
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x51802f
push 3
jmp 0x518031
push 0
mov ecx, edi
push 5
call fcn.004d76b0
push 0x14a
push 6
mov ecx, edi
call fcn.004d76b0
push edi
mov ecx, esi
call fcn.004ec700
mov edi, dword [esp + 0x48]
push 1
push edi
push 1
mov ecx, esi
call fcn.004ef770
mov ecx, eax
call fcn.00555f40
cmp eax, 1
jne 0x5180f0
mov eax, dword [edi + 0x28c]
cmp eax, 1
jle 0x518084
dec eax
mov dword [edi + 0x28c], eax
jmp 0x5180f0
push 0
push 1
push 1
push edi
mov ecx, esi
call fcn.00510ef0
test eax, eax
je 0x5180f0
mov eax, dword [esi + 4]
mov ecx, dword [0x7a39fc]
mov ecx, dword [ecx + 8]
push eax
call fcn.004ae910
test eax, eax
je 0x5180c6
mov edx, dword [edi + 0x14]
mov ecx, dword [0x7a39fc]
mov ecx, dword [ecx + 8]
push edx
push eax
call fcn.004aedb0
mov ecx, eax
call fcn.00569fc0
mov edx, dword [0x7a39fc]
mov ecx, dword [edx + 8]
mov edx, dword [0x7441e0]
mov edi, dword [edi + 0x14]
mov eax, dword [esi + 4]
push 0
push edx
push edi
push eax
push 0
push 0
call fcn.004aed80
mov ecx, eax
call fcn.004b08d0
push 0x8c
call fcn.006fa7e6
add esp, 4
mov dword [esp + 0x70], eax
test eax, eax
mov dword [esp + 0x68], 3
je 0x51811a
push 1
mov ecx, eax
call fcn.00503e40
mov edi, eax
jmp 0x51811c
xor edi, edi
mov ax, word [0x746718]
xor ecx, ecx
mov cx, word [edi + 0xa]
mov word [edi + 8], ax
mov dword [esp + 0x68], 0xffffffff
and ecx, 0xfff8
or cx, word [0x7473b8]
mov word [edi + 0xa], cx
mov eax, dword [esi + 4]
push eax
mov ecx, edi
call fcn.00503a00
push ebx
push 0
mov ecx, edi
call fcn.005036a0
push 0
push 0
push edi
mov ecx, ebp
call fcn.004d14f0
push 0x8c
call fcn.006fa7e6
add esp, 4
mov dword [esp + 0x70], eax
test eax, eax
mov dword [esp + 0x68], 4
je 0x518190
push 1
mov ecx, eax
call fcn.00503e40
mov edi, eax
jmp 0x518192
xor edi, edi
mov dx, word [0x7466f4]
xor eax, eax
mov ax, word [edi + 0xa]
mov word [edi + 8], dx
mov dword [esp + 0x68], 0xffffffff
and eax, 0xfff8
or ax, word [0x7473b8]
mov word [edi + 0xa], ax
mov ecx, dword [esi + 4]
push ecx
mov ecx, edi
call fcn.00503a00
push 0x3e9
push 0
mov ecx, edi
call fcn.005036a0
push 0
push 0
push edi
mov ecx, ebp
call fcn.004d14f0
mov dword [esi + 0x978], 0
mov eax, dword [0x745dc0]
mov ecx, dword [esp + 0x60]
pop edi
pop ebp
pop ebx
pop esi
mov dword fs:[0], ecx
add esp, 0x5c
ret 4