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

Disassembly:
sub esp, 0x78
push ebx
mov ebx, ecx
push ebp
push esi
mov al, byte [ebx + 0x18]
push edi
test al, 0x10
mov dword [esp + 0x14], ebx
je 0x5cfcb2
mov al, byte [0x7fd64c]
test al, al
mov eax, 3
jne 0x5cfcb7
mov eax, 2
mov cx, word [ebx + 0x78]
mov dword [esp + 0x30], eax
push ecx
push 0x252
push eax
lea ecx, [esp + 0x84]
call fcn.00553f60
mov edi, dword [esp + 0x78]
lea edx, [esp + 0x78]
push edx
lea ecx, [esp + 0x58]
call fcn.005543f0
mov eax, dword [ebx + 0x30]
mov esi, dword [esp + 0x58]
mov ecx, ebx
mov ebp, dword [eax + 8]
call fcn.00593410
mov dword [esp + 0x40], eax
mov eax, dword [ebx + 0x7c]
xor edx, edx
mov ecx, dword [eax + 0xc]
cmp ecx, edx
je 0x5cfd0e
mov ecx, dword [ecx + 8]
mov dword [esp + 0x2c], ecx
jmp 0x5cfd12
mov dword [esp + 0x2c], edx
mov ecx, dword [eax + 0x10]
cmp ecx, edx
je 0x5cfd22
mov ecx, dword [ecx + 8]
mov dword [esp + 0x28], ecx
jmp 0x5cfd26
mov dword [esp + 0x28], edx
mov eax, dword [eax + 0x4c]
cmp eax, edx
je 0x5cfd32
mov ebx, dword [eax + 8]
jmp 0x5cfd34
xor ebx, ebx
mov al, byte [0x83dad0]
mov dword [esp + 0x3c], ebx
test al, 1
jne 0x5cfd77
mov dl, al
push 0x5d05b0
or dl, 1
mov dword [0x83dad8], 0
mov byte [0x83dad0], dl
mov dword [0x83dadc], 0
mov dword [0x83dae0], 0
call fcn.0078c854
add esp, 4
mov al, byte [0x83dad0]
test al, 2
jne 0x5cfdac
mov dl, al
push 0x5d05a0
or dl, 2
mov dword [0x83dae8], 0
mov byte [0x83dad0], dl
mov dword [0x83daec], 0
call fcn.0078c854
add esp, 4
mov edx, dword [esp + 0x14]
mov dword [esp + 0x38], 0
mov eax, dword [edx + 0x78]
test eax, eax
jle 0x5cfed4
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x34], eax
mov eax, edx
mov dword [esp + 0x24], ebx
sub eax, ebp
lea ebx, [ecx + 4]
lea ecx, [ebp + 8]
mov ebp, dword [esp + 0x28]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x2c]
sub eax, ebp
mov dword [esp + 0x48], eax
mov eax, dword [edi + 8]
mov ebp, dword [ecx - 8]
add eax, esi
mov dword [eax], ebp
mov ebp, dword [ecx - 4]
mov dword [eax + 4], ebp
mov ebp, dword [ecx]
mov dword [eax + 8], ebp
mov eax, dword [edi + 0xc]
mov ebp, dword [edx]
add eax, esi
mov dword [eax], ebp
mov ebp, dword [edx + 4]
mov dword [eax + 4], ebp
mov ebp, dword [esp + 0x4c]
mov ebp, dword [ecx + ebp]
mov dword [eax + 8], ebp
mov eax, dword [esp + 0x2c]
test eax, eax
mov eax, dword [edi + 0x14]
je 0x5cfe40
mov ebp, dword [esp + 0x34]
add eax, esi
mov ebp, dword [ebp]
mov dword [eax], ebp
mov ebp, dword [esp + 0x48]
mov ebp, dword [ebx + ebp]
jmp 0x5cfe50
mov ebp, dword [0x83dae8]
add eax, esi
mov dword [eax], ebp
mov ebp, dword [0x83daec]
mov dword [eax + 4], ebp
mov eax, dword [esp + 0x28]
test eax, eax
mov eax, dword [edi + 0x18]
je 0x5cfe69
mov ebp, dword [ebx - 4]
add eax, esi
mov dword [eax], ebp
mov ebp, dword [ebx]
jmp 0x5cfe79
mov ebp, dword [0x83dae8]
add eax, esi
mov dword [eax], ebp
mov ebp, dword [0x83daec]
mov dword [eax + 4], ebp
mov eax, dword [esp + 0x3c]
test eax, eax
mov eax, dword [edi + 0x34]
je 0x5cfe93
mov ebp, dword [esp + 0x24]
mov ebp, dword [ebp]
mov dword [eax + esi], ebp
jmp 0x5cfe9a
mov dword [eax + esi], 0xffffffff
mov ebp, dword [esp + 0x34]
mov eax, dword [edi + 4]
add ebp, 8
add esi, eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x34], ebp
mov ebp, dword [esp + 0x24]
inc eax
add ebp, 4
add ecx, 0xc
mov dword [esp + 0x24], ebp
mov ebp, dword [esp + 0x14]
add edx, 0xc
add ebx, 8
cmp eax, dword [ebp + 0x78]
mov dword [esp + 0x38], eax
jl 0x5cfdf3
mov ebp, dword [esp + 0x14]
lea ecx, [esp + 0x54]
call fcn.005544b0
mov cx, word [ebp + 0x74]
mov edx, dword [esp + 0x30]
imul cx, cx, 3
push ecx
push edx
lea ecx, [esp + 0x64]
call fcn.00552210
mov eax, dword [ebp + 0x2c]
lea ecx, [esp + 0x5c]
push ecx
lea ecx, [esp + 0x58]
mov esi, dword [eax + 8]
mov dword [esp + 0x38], esi
call fcn.00552320
mov eax, dword [ebp + 0x74]
xor edx, edx
test eax, eax
jle 0x5cff47
mov eax, dword [esp + 0x58]
lea ecx, [eax + 4]
lea eax, [esi + 4]
mov si, word [eax - 4]
inc edx
mov word [ecx - 4], si
mov si, word [eax - 2]
mov word [ecx - 2], si
mov si, word [eax]
mov word [ecx], si
mov esi, dword [ebp + 0x74]
add eax, 6
add ecx, 6
cmp edx, esi
jl 0x5cff23
lea ecx, [esp + 0x54]
call fcn.005523c0
lea ecx, [esp + 0x78]
push ecx
call fcn.0054a5b0
lea edx, [esp + 0x60]
push 0
push edx
call fcn.0054a630
mov eax, dword [ebp + 0x7c]
add esp, 0xc
xor ebx, ebx
mov eax, dword [eax]
mov dword [esp + 0x4c], ebx
test eax, eax
mov dword [esp + 0x54], eax
jbe 0x5d0582
jmp 0x5cff86
mov ebp, dword [esp + 0x14]
mov ax, word [ebp + 0x78]
mov ecx, dword [ebp + 0x7c]
xor esi, esi
dec ax
push esi
push esi
push ebx
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], esi
mov dword [esp + 0x44], esi
mov dword [esp + 0x38], esi
call fcn.005959d0
cmp eax, esi
je 0x5cffb6
mov ecx, dword [eax + 8]
mov dword [esp + 0x18], ecx
jmp 0x5cffba
mov dword [esp + 0x18], esi
mov ecx, dword [ebp + 0x7c]
push esi
push 1
push ebx
call fcn.005959d0
cmp eax, esi
je 0x5cffd3
mov edx, dword [eax + 8]
mov dword [esp + 0x24], edx
jmp 0x5cffd7
mov dword [esp + 0x24], esi
mov ecx, dword [ebp + 0x7c]
push esi
push ebx
call fcn.00595aa0
cmp eax, esi
je 0x5cffee
mov eax, dword [eax + 8]
mov dword [esp + 0x28], eax
jmp 0x5cfff2
mov dword [esp + 0x28], esi
mov ecx, dword [ebp + 0x7c]
push esi
push ebx
call fcn.00595b60
mov edi, eax
mov eax, dword [esp + 0x18]
cmp eax, esi
mov dword [esp + 0x40], edi
je 0x5d0038
mov ecx, eax
mov esi, dword [ecx]
mov ecx, dword [0x8310e8]
cmp esi, ecx
je 0x5d007d
test esi, esi
je 0x5d0029
mov eax, dword [esi + 4]
inc eax
mov dword [esi + 4], eax
mov ecx, dword [0x8310e8]
test ecx, ecx
je 0x5d006b
mov eax, dword [ecx + 4]
dec eax
mov dword [ecx + 4], eax
jne 0x5d006b
jmp 0x5d0067
mov eax, dword [ebp + 0x7c]
mov ecx, dword [0x8310e8]
mov esi, dword [eax + ebx*8 + 0x74]
cmp esi, ecx
je 0x5d007d
test esi, esi
je 0x5d005a
mov eax, dword [esi + 4]
inc eax
mov dword [esi + 4], eax
mov ecx, dword [0x8310e8]
test ecx, ecx
je 0x5d006b
mov eax, dword [ecx + 4]
dec eax
mov dword [ecx + 4], eax
jne 0x5d006b
mov edx, dword [ecx]
call dword [edx]
mov eax, dword [0x830728]
mov dword [0x8310e8], esi
or al, 0x40
mov dword [0x830728], eax
mov eax, dword [esp + 0x24]
test eax, eax
je 0x5d00b5
mov esi, dword [eax]
mov ecx, dword [0x8310ec]
cmp esi, ecx
je 0x5d00fa
test esi, esi
je 0x5d00a2
mov eax, dword [esi + 4]
inc eax
mov dword [esi + 4], eax
mov ecx, dword [0x8310ec]
test ecx, ecx
je 0x5d00e8
mov eax, dword [ecx + 4]
dec eax
mov dword [ecx + 4], eax
jne 0x5d00e8
mov eax, dword [ecx]
call dword [eax]
jmp 0x5d00e8
mov ecx, dword [ebp + 0x7c]
mov esi, dword [ecx + ebx*8 + 0x78]
mov ecx, dword [0x8310ec]
cmp esi, ecx
je 0x5d00fa
test esi, esi
je 0x5d00d7
mov eax, dword [esi + 4]
inc eax
mov dword [esi + 4], eax
mov ecx, dword [0x8310ec]
test ecx, ecx
je 0x5d00e8
mov eax, dword [ecx + 4]
dec eax
mov dword [ecx + 4], eax
jne 0x5d00e8
mov edx, dword [ecx]
call dword [edx]
mov eax, dword [0x830728]
mov dword [0x8310ec], esi
or al, 0x80
mov dword [0x830728], eax
mov eax, dword [esp + 0x28]
test eax, eax
je 0x5d013c
mov edx, dword [esp + 0x34]
xor ecx, ecx
mov cx, word [edx]
mov esi, dword [eax + ecx*4]
mov ecx, dword [0x8310e4]
cmp esi, ecx
je 0x5d0185
test esi, esi
je 0x5d0129
mov eax, dword [esi + 4]
inc eax
mov dword [esi + 4], eax
mov ecx, dword [0x8310e4]
test ecx, ecx
je 0x5d0172
mov eax, dword [ecx + 4]
dec eax
mov dword [ecx + 4], eax
jne 0x5d0172
mov eax, dword [ecx]
call dword [eax]
jmp 0x5d0172
mov ecx, dword [ebp + 0x7c]
mov esi, dword [ecx + ebx*4 + 0xa4]
mov ecx, dword [0x8310e4]
cmp esi, ecx
je 0x5d0185
test esi, esi
je 0x5d0161
mov eax, dword [esi + 4]
inc eax
mov dword [esi + 4], eax
mov ecx, dword [0x8310e4]
test ecx, ecx
je 0x5d0172
mov eax, dword [ecx + 4]
dec eax
mov dword [ecx + 4], eax
jne 0x5d0172
mov edx, dword [ecx]
call dword [edx]
mov eax, dword [0x830728]
mov dword [0x8310e4], esi
or ah, 0x40
mov dword [0x830728], eax
test edi, edi
je 0x5d01a8
mov al, byte [0x8093a8]
test al, al
jne 0x5d019e
mov eax, dword [edi]
mov ecx, dword [0x8310e0]
cmp eax, ecx
je 0x5d01d6
mov ecx, dword [edi]
mov dword [0x8310e0], ecx
jmp 0x5d01c9
mov edx, dword [ebp + 0x7c]
mov cl, byte [0x8093a8]
test cl, cl
mov eax, dword [edx + ebx*4 + 0x94]
jne 0x5d01c4
cmp eax, dword [0x8310e0]
je 0x5d01d6
mov dword [0x8310e0], eax
mov eax, dword [0x830728]
or ah, 0x80
mov dword [0x830728], eax
lea eax, [esp + 0x68]
mov ecx, ebp
push eax
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
call fcn.00591670
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x5d0252
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x5d0252
mov eax, dword [esp + 0x28]
test eax, eax
jne 0x5d0252
test edi, edi
jne 0x5d0252
mov cx, word [ebp + 0x78]
mov eax, dword [esp + 0x30]
mov dx, word [ebp + 0x74]
push ecx
push edi
cmp eax, 3
push edx
push edi
jne 0x5d0245
lea eax, [esp + 0x78]
push eax
call fcn.00557800
add esp, 0x14
jmp 0x5d0571
call fcn.0054aa80
add esp, 0x10
jmp 0x5d0571
mov dword [esp + 0x3c], 0
xor ebx, ebx
mov ebp, dword [esp + 0x2c]
mov ecx, dword [esp + 0x34]
and ebp, 0xffff
lea eax, [ebp + ebp*2]
lea esi, [ecx + eax*2]
mov dword [esp + 0x50], esi
mov ax, word [esi]
mov cx, word [esi + 2]
cmp ax, cx
mov edx, eax
jb 0x5d0285
mov edx, ecx
mov si, word [esi + 4]
cmp dx, si
jae 0x5d029b
cmp ax, cx
jae 0x5d0297
mov edi, eax
jmp 0x5d029d
mov edi, ecx
jmp 0x5d029d
mov edi, esi
cmp ax, cx
mov edx, eax
ja 0x5d02a6
mov edx, ecx
cmp dx, si
jbe 0x5d02b4
cmp ax, cx
ja 0x5d02b6
mov eax, ecx
jmp 0x5d02b6
mov eax, esi
cmp word [esp + 0x1c], di
jb 0x5d02c1
mov dword [esp + 0x1c], edi
cmp word [esp + 0x20], ax
ja 0x5d02cc
mov dword [esp + 0x20], eax
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x14]
add ebx, 3
lea edi, [edx + 1]
mov edx, dword [eax + 0x74]
mov dword [esp + 0x44], edi
and edi, 0xffff
cmp edi, edx
mov dword [esp + 0x48], ebx
setge al
test al, al
mov byte [esp + 0x13], al
je 0x5d035f
xor bl, bl
xor cl, cl
mov byte [esp + 0x10], bl
mov byte [esp + 0x11], cl
xor al, al
mov dl, byte [esp + 0x13]
mov byte [esp + 0x12], al
test dl, dl
jne 0x5d0322
test bl, bl
jne 0x5d0322
test cl, cl
jne 0x5d0322
test al, al
je 0x5d0555
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x1c]
cmp eax, 3
mov eax, dword [esp + 0x20]
jne 0x5d03e6
mov edx, dword [esp + 0x38]
sub eax, ecx
inc eax
push eax
mov eax, dword [esp + 0x30]
sub eax, edx
push ecx
inc eax
lea ecx, [esp + 0x70]
push eax
mov eax, dword [esp + 0x48]
push eax
push ecx
call fcn.00557800
add esp, 0x14
jmp 0x5d0404
mov eax, dword [esp + 0x18]
test eax, eax
je 0x5d0375
mov ecx, dword [eax + ebp*4]
mov edx, dword [eax + edi*4]
cmp ecx, edx
je 0x5d0375
mov bl, 1
jmp 0x5d0377
xor bl, bl
mov eax, dword [esp + 0x24]
test eax, eax
je 0x5d038e
mov edx, dword [eax + ebp*4]
mov ecx, dword [eax + edi*4]
cmp edx, ecx
mov byte [esp + 0x10], 1
jne 0x5d0393
mov byte [esp + 0x10], 0
mov eax, dword [esp + 0x28]
test eax, eax
je 0x5d03bf
mov esi, dword [esp + 0x34]
lea ecx, [edi + edi*2]
xor edx, edx
mov dx, word [esi + ecx*2]
mov esi, dword [esp + 0x50]
xor ecx, ecx
mov cx, word [esi]
mov esi, dword [eax + edx*4]
mov ecx, dword [eax + ecx*4]
cmp ecx, esi
je 0x5d03bf
mov cl, 1
jmp 0x5d03c1
xor cl, cl
mov eax, dword [esp + 0x40]
mov byte [esp + 0x11], cl
test eax, eax
je 0x5d0304
mov edx, dword [eax + ebp*4]
mov esi, dword [eax + edi*4]
cmp edx, esi
je 0x5d0304
mov al, 1
jmp 0x5d0306
mov ebp, dword [esp + 0x38]
sub eax, ecx
inc eax
mov edx, dword [esp + 0x3c]
push eax
mov eax, dword [esp + 0x30]
sub eax, ebp
push ecx
inc eax
push eax
push edx
call fcn.0054aa80
add esp, 0x10
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x38], eax
mov ax, word [edx + 0x78]
mov dword [esp + 0x3c], ecx
dec ax
mov dword [esp + 0x20], 0
test bl, bl
mov dword [esp + 0x1c], eax
je 0x5d0473
mov eax, dword [esp + 0x18]
mov ecx, dword [0x8310e8]
mov esi, dword [eax + edi*4]
cmp esi, ecx
je 0x5d0473
test esi, esi
je 0x5d0450
mov eax, dword [esi + 4]
inc eax
mov dword [esi + 4], eax
mov ecx, dword [0x8310e8]
test ecx, ecx
je 0x5d0461
mov eax, dword [ecx + 4]
dec eax
mov dword [ecx + 4], eax
jne 0x5d0461
mov edx, dword [ecx]
call dword [edx]
mov eax, dword [0x830728]
mov dword [0x8310e8], esi
or al, 0x40
mov dword [0x830728], eax
mov al, byte [esp + 0x10]
test al, al
je 0x5d04c0
mov eax, dword [esp + 0x24]
mov ecx, dword [0x8310ec]
mov esi, dword [eax + edi*4]
cmp esi, ecx
je 0x5d04c0
test esi, esi
je 0x5d049d
mov eax, dword [esi + 4]
inc eax
mov dword [esi + 4], eax
mov ecx, dword [0x8310ec]
test ecx, ecx
je 0x5d04ae
mov eax, dword [ecx + 4]
dec eax
mov dword [ecx + 4], eax
jne 0x5d04ae
mov edx, dword [ecx]
call dword [edx]
mov eax, dword [0x830728]
mov dword [0x8310ec], esi
or al, 0x80
mov dword [0x830728], eax
mov al, byte [esp + 0x11]
test al, al
je 0x5d051b
mov edx, dword [esp + 0x34]
lea eax, [edi + edi*2]
xor ecx, ecx
mov cx, word [edx + eax*2]
mov eax, dword [esp + 0x28]
mov esi, dword [eax + ecx*4]
mov ecx, dword [0x8310e4]
cmp esi, ecx
je 0x5d051b
test esi, esi
je 0x5d04f7
mov eax, dword [esi + 4]
inc eax
mov dword [esi + 4], eax
mov ecx, dword [0x8310e4]
test ecx, ecx
je 0x5d0508
mov eax, dword [ecx + 4]
dec eax
mov dword [ecx + 4], eax
jne 0x5d0508
mov edx, dword [ecx]
call dword [edx]
mov eax, dword [0x830728]
mov dword [0x8310e4], esi
or ah, 0x40
mov dword [0x830728], eax
mov al, byte [esp + 0x12]
test al, al
je 0x5d0555
mov al, byte [0x8093a8]
test al, al
jne 0x5d053c
mov eax, dword [esp + 0x40]
mov ecx, dword [eax + edi*4]
mov eax, dword [0x8310e0]
cmp ecx, eax
je 0x5d0555
mov edx, dword [esp + 0x40]
mov eax, dword [edx + edi*4]
mov dword [0x8310e0], eax
mov eax, dword [0x830728]
or ah, 0x80
mov dword [0x830728], eax
mov al, byte [esp + 0x13]
mov ecx, dword [esp + 0x44]
mov ebx, dword [esp + 0x48]
mov dword [esp + 0x2c], ecx
test al, al
je 0x5d025c
mov ebx, dword [esp + 0x4c]
mov eax, dword [esp + 0x54]
inc ebx
cmp ebx, eax
mov dword [esp + 0x4c], ebx
jb 0x5cff82
lea ecx, [esp + 0x5c]
call fcn.00552250
lea ecx, [esp + 0x78]
call fcn.00553fa0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret 4