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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0xa4]
cmp eax, dword [ecx + 8]
jbe 0x8786fc
sub esp, 0x124
mov edx, dword [esp + 0x130]
test edx, edx
je 0x8786b0
mov ebx, dword [esp + 0x128]
mov ebp, dword [ebx + 0x24]
mov esi, dword [ebx + 0x20]
lea edi, [ebx + 0x20]
mov dword [esp + 0xb0], edi
test ebp, ebp
jle 0x877c06
mov esi, dword [esi + ebp*4 - 4]
mov ecx, dword [esi + 0x10]
mov edi, dword [esi + 0xc]
test ecx, ecx
jbe 0x8786f4
mov ecx, dword [edi + 4]
lea eax, [0xc8dd60]
cmp dword [edi], eax
jne 0x8786a6
je 0x8780f4
mov dword [esp + 0x48], ebp
lea eax, [0xb4a760]
mov dword [esp], eax
mov dword [esp + 4], ebp
lea ecx, [ebp + edx]
mov dword [esp + 0x4c], ecx
mov dword [esp + 8], ecx
call fcn.00446f30
mov eax, dword [esp + 0xc]
mov dword [esp + 0xac], eax
lea edi, [esp + 0xb4]
xor eax, eax
call fcn.00460de9
lea edi, [esp + 0xd0]
call fcn.00460ddb
lea eax, [esp + 0xd0]
mov dword [esp + 0xc0], eax
call fcn.0044b380
mov eax, dword [esp]
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0xac]
mov edx, dword [esp + 0x128]
xor ebx, ebx
jmp 0x877c83
inc ebx
mov edx, edi
cmp eax, ebx
jle 0x877d80
mov ebp, dword [edx + 0x24]
mov esi, dword [edx + 0x20]
cmp ebp, ebx
jbe 0x8786c9
mov ebp, dword [esi + ebx*4]
lea edi, [ecx + ebx*4]
mov esi, dword [0x10fd360]
test esi, esi
jne 0x877d70
mov dword [ecx + ebx*4], ebp
mov esi, dword [ebp + 0x10]
mov ebp, dword [ebp + 0xc]
test esi, esi
jbe 0x8786c0
mov esi, dword [ebp + 4]
mov edi, edx
lea edx, [0xc8dd60]
cmp dword [ebp], edx
jne 0x877d66
jne 0x877c80
mov dword [esp + 0x58], ebx
mov eax, dword [esi + 0xc]
mov dword [esp + 0x6c], eax
mov ecx, dword [esi + 0x10]
mov dword [esp + 0x38], ecx
lea edx, [0xab5360]
mov dword [esp], edx
mov ebx, dword [0x10e3664]
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov dword [esp + 0xc], ecx
call fcn.00410690
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 4]
mov eax, dword [eax]
test ecx, ecx
je 0x877d5c
lea edx, [0xab48e0]
mov dword [esp], edx
lea ebx, [esp + 0xb4]
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov dword [esp + 0xc], ecx
call fcn.00410d60
mov eax, dword [esp + 0x10]
mov byte [eax], 1
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0xac]
lea edx, [0xc8dd60]
mov ebx, dword [esp + 0x58]
mov edi, dword [esp + 0x128]
jmp 0x877c80
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x6c]
jmp 0x877d13
mov esi, 0
jmp 0x877cd2
mov esi, eax
mov eax, ebp
call fcn.00460b40
mov eax, esi
jmp 0x877cb0
xor ebx, ebx
mov ebp, dword [esp + 0x4c]
jmp 0x877d9c
mov esi, dword [esp + 0x60]
lea ebx, [esi + 1]
mov ebp, eax
mov eax, ecx
mov ecx, edx
mov edx, dword [esp + 0x128]
mov esi, dword [esp + 0x130]
cmp ebx, esi
jge 0x8780ca
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x64], ecx
mov dword [esp + 0x28], eax
mov dword [esp + 0x60], ebx
mov eax, dword [esp + 0x12c]
lea ecx, [eax + ebx*8]
mov edx, dword [ecx]
mov dword [esp + 0x94], edx
mov ecx, dword [ecx + 4]
mov dword [esp + 0x50], ecx
lea ebp, [0xab5360]
mov dword [esp], ebp
mov esi, dword [0x10e3664]
mov dword [esp + 4], esi
mov dword [esp + 8], edx
mov dword [esp + 0xc], ecx
call fcn.00410690
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 4]
mov eax, dword [eax]
test ecx, ecx
je 0x8780ba
lea edx, [0xab48e0]
mov dword [esp], edx
lea ebx, [esp + 0xb4]
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov dword [esp + 0xc], ecx
call fcn.00410690
mov eax, dword [esp + 0x10]
movzx eax, byte [eax]
test al, al
je 0x877e43
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x64]
jmp 0x877d88
mov eax, dword [esp + 0x128]
mov ecx, dword [eax + 4]
mov dword [esp + 0x40], ecx
lea edx, [0xb34920]
mov dword [esp], edx
call fcn.0040bd00
mov eax, dword [esp + 4]
mov dword [eax], 9
mov ecx, dword [esp + 0x50]
mov dword [eax + 0x10], ecx
mov ecx, dword [0x10fd360]
test ecx, ecx
jne 0x8780a2
mov ecx, dword [esp + 0x94]
mov dword [eax + 0xc], ecx
mov dword [esp + 0x7c], eax
mov dword [eax + 8], 0
mov ecx, dword [esp + 0x40]
mov dword [eax + 4], ecx
lea ecx, [0xb347e0]
mov dword [esp], ecx
call fcn.0040bd00
mov eax, dword [esp + 4]
mov dword [esp + 0xa0], eax
mov dword [eax], 4
lea ecx, [0xa92640]
mov dword [esp], ecx
call fcn.0040bd00
mov eax, dword [esp + 4]
lea ecx, [0xc8dd60]
mov dword [eax], ecx
mov edx, dword [0x10fd360]
test edx, edx
jne 0x87808d
mov edx, dword [esp + 0x7c]
mov dword [eax + 4], edx
mov edx, dword [esp + 0xa0]
mov dword [edx + 0x10], 1
mov dword [edx + 0x14], 1
mov ebx, dword [0x10fd360]
test ebx, ebx
jne 0x878080
mov dword [edx + 0xc], eax
mov ebx, dword [esp + 0x28]
test ebx, ebx
je 0x878075
mov ebp, dword [esp + 0x64]
mov esi, dword [ebp + ebx*4 - 4]
mov eax, ebx
mov ebx, dword [esi + 0xc]
mov esi, dword [esi + 0x10]
test esi, esi
jbe 0x8786b7
mov esi, dword [ebx + 4]
mov ebx, dword [ebx]
cmp ebx, ecx
jne 0x87806e
mov edi, esi
mov esi, dword [edx + 0xc]
mov edx, dword [esi + 4]
mov esi, dword [esi]
cmp esi, ecx
jne 0x878062
cmp ebx, ecx
jne 0x87805b
cmp esi, ecx
je 0x877fe7
xor edx, edx
test dl, dl
je 0x877f76
mov edx, dword [esp + 0x2c]
mov ecx, eax
mov eax, edx
mov edx, ebp
jmp 0x877d88
lea edx, [eax + 1]
mov ebx, dword [esp + 0x2c]
cmp ebx, edx
jb 0x877fae
mov esi, dword [0x10fd360]
lea edi, [ebp + eax*4]
test esi, esi
jne 0x877fa0
mov esi, dword [esp + 0xa0]
mov dword [ebp + eax*4], esi
mov eax, edx
mov edx, ebx
jmp 0x877f6b
mov eax, dword [esp + 0xa0]
call fcn.00460b40
jmp 0x877f9a
lea ecx, [0xb4a760]
mov dword [esp], ecx
mov dword [esp + 4], ebp
mov dword [esp + 8], eax
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], edx
call fcn.00447080
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
lea edx, [eax + 1]
mov eax, dword [esp + 0x28]
lea ecx, [0xc8dd60]
jmp 0x877f81
mov dword [esp + 0x88], edx
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 0x10]
lea edx, [0xab5160]
mov dword [esp], edx
mov ebx, dword [0x10e3670]
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov dword [esp + 0xc], ecx
call fcn.00410690
mov eax, dword [esp + 0x10]
mov eax, dword [eax]
mov ecx, dword [esp + 0x88]
mov edx, dword [ecx + 0xc]
mov ecx, dword [ecx + 0x10]
lea ebx, [0xab48e0]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov dword [esp + 0xc], ecx
call fcn.00410690
mov eax, dword [esp + 0x10]
movzx edx, byte [eax]
mov eax, dword [esp + 0x28]
lea ecx, [0xc8dd60]
mov ebp, dword [esp + 0x64]
jmp 0x877f63
xor edx, edx
jmp 0x877f63
cmp ebx, ecx
mov edx, 0
jmp 0x877f53
xor esi, esi
jmp 0x877f3f
mov eax, ebx
mov ebp, dword [esp + 0x64]
jmp 0x877f76
lea edi, [edx + 0xc]
call fcn.00460b40
jmp 0x877f0e
lea edi, [eax + 4]
mov edx, eax
mov eax, dword [esp + 0x7c]
call fcn.00460b40
mov eax, edx
jmp 0x877ee8
lea edi, [eax + 0xc]
mov ecx, eax
mov eax, dword [esp + 0x94]
call fcn.00460b40
mov eax, ecx
jmp 0x877e88
mov ecx, dword [esp + 0x50]
mov eax, dword [esp + 0x94]
jmp 0x877e06
mov dword [edx + 0x24], eax
mov dword [edx + 0x28], ebp
mov ebx, dword [0x10fd360]
test ebx, ebx
jne 0x8780e4
mov dword [edx + 0x20], ecx
add esp, 0x124
ret
mov edi, dword [esp + 0xb0]
mov eax, ecx
call fcn.00460b40
jmp 0x8780dd
mov dword [esp + 0x8c], esi
mov dword [esp + 0x98], ecx
mov dword [esp + 0x60], ebp
mov eax, dword [ecx + 0xc]
mov dword [esp + 0x74], eax
mov edx, dword [ecx + 0x10]
mov dword [esp + 0x34], edx
lea ebx, [0xab48e0]
mov dword [esp], ebx
mov ebp, dword [0x10e366c]
mov dword [esp + 4], ebp
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
call fcn.00410690
mov eax, dword [esp + 0x10]
movzx eax, byte [eax]
test al, al
je 0x87868f
mov eax, dword [esp + 0x128]
cmp dword [eax + 0x24], 1
jne 0x878161
mov ecx, dword [esp + 0x8c]
cmp dword [ecx + 0x10], 1
jg 0x87831a
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x44], ecx
xor edx, edx
xor ebx, ebx
jmp 0x87817f
lea edx, [ebp + 1]
mov ecx, dword [esp + 0x44]
mov ebx, eax
mov eax, dword [esp + 0x128]
mov ebp, dword [esp + 0x130]
cmp edx, ebp
jge 0x8782ff
mov dword [esp + 0x54], edx
mov byte [esp + 0x23], bl
mov eax, dword [esp + 0x12c]
lea ecx, [eax + edx*8]
mov dword [esp + 0xa8], ecx
mov ebx, dword [ecx]
mov dword [esp + 0x70], ebx
mov ebp, dword [ecx + 4]
mov dword [esp + 0x30], ebp
lea esi, [0xab5360]
mov dword [esp], esi
mov edi, dword [0x10e3664]
mov dword [esp + 4], edi
mov edi, dword [esp + 0x74]
mov dword [esp + 8], edi
mov ecx, dword [esp + 0x34]
mov dword [esp + 0xc], ecx
call fcn.00410690
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 4]
mov eax, dword [eax]
test ecx, ecx
je 0x8782f2
mov dword [esp + 0x60], ecx
mov dword [esp + 0xa4], eax
lea edx, [0xab5360]
mov dword [esp], edx
mov ebx, dword [0x10e3664]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x70]
mov dword [esp + 8], ebx
mov ebp, dword [esp + 0x30]
mov dword [esp + 0xc], ebp
call fcn.00410690
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 4]
mov eax, dword [eax]
test ecx, ecx
je 0x8782e5
mov edx, dword [esp + 0x60]
cmp ecx, edx
je 0x8782c4
xor eax, eax
test al, al
je 0x8782a1
mov edx, dword [esp + 0x98]
mov eax, dword [edx + 0xc]
mov ebx, dword [edx + 0x10]
mov ebp, dword [esp + 0x54]
mov ecx, dword [esp + 0x130]
cmp ebp, ecx
jae 0x8786d2
mov esi, dword [esp + 0x12c]
mov edi, edx
lea edx, [esi + ebp*8 + 4]
mov dword [edx], ebx
mov edx, dword [0x10fd360]
test edx, edx
jne 0x87828f
mov edx, dword [esp + 0xa8]
mov dword [edx], eax
mov eax, 1
jmp 0x87816f
mov edx, edi
mov edi, dword [esp + 0xa8]
call fcn.00460b40
mov edi, edx
jmp 0x878285
mov ecx, dword [esp + 0x130]
mov ebp, dword [esp + 0x54]
mov esi, dword [esp + 0x12c]
mov edi, dword [esp + 0x98]
movzx eax, byte [esp + 0x23]
jmp 0x87816f
mov ecx, dword [esp + 0xa4]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], edx
call fcn.00402a10
movzx eax, byte [esp + 0xc]
jmp 0x87823f
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x70]
jmp 0x878231
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x74]
jmp 0x8781ed
test bl, bl
je 0x878304
dec ecx
lea eax, [0xc8dd60]
mov edx, ebp
mov ebx, dword [esp + 0x128]
mov ebp, ecx
jmp 0x877c06
lea eax, [0xb34920]
mov dword [esp], eax
call fcn.0040bd00
mov eax, dword [esp + 4]
mov dword [eax], 9
mov dword [eax + 0x10], 0xb
lea ecx, [0xb962c1]
mov dword [eax + 0xc], ecx
mov dword [eax + 8], 0
mov ecx, dword [esp + 0x8c]
mov edx, dword [ecx + 0x10]
mov ebx, dword [ecx + 0xc]
test edx, edx
jbe 0x8786eb
mov dword [esp + 0x80], eax
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
mov eax, dword [eax + 0x14]
mov dword [esp], ecx
call eax
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x80]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x8c]
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 0x10]
test eax, eax
jbe 0x8786e2
lea ebx, [0xc8dd60]
mov dword [edx], ebx
mov ebp, dword [0x10fd360]
test ebp, ebp
jne 0x878680
mov dword [edx + 4], ecx
mov eax, dword [esp + 0x128]
mov ecx, dword [eax + 4]
mov dword [esp + 0x3c], ecx
lea edx, [0xb34920]
mov dword [esp], edx
call fcn.0040bd00
mov eax, dword [esp + 4]
mov dword [eax], 9
mov ecx, dword [esp + 0x34]
mov dword [eax + 0x10], ecx
mov edx, dword [0x10fd360]
test edx, edx
jne 0x87866b
mov edx, dword [esp + 0x74]
mov dword [eax + 0xc], edx
mov dword [esp + 0x78], eax
mov dword [eax + 8], 0
mov ecx, dword [esp + 0x3c]
mov dword [eax + 4], ecx
lea ecx, [0xb347e0]
mov dword [esp], ecx
call fcn.0040bd00
mov eax, dword [esp + 4]
mov dword [esp + 0x9c], eax
mov dword [eax], 4
lea ecx, [0xa92640]
mov dword [esp], ecx
call fcn.0040bd00
mov eax, dword [esp + 4]
lea ecx, [0xc8dd60]
mov dword [eax], ecx
mov edx, dword [0x10fd360]
test edx, edx
jne 0x878656
mov edx, dword [esp + 0x78]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x9c]
mov dword [edx + 0x10], 1
mov dword [edx + 0x14], 1
mov ebx, dword [0x10fd360]
test ebx, ebx
jne 0x878649
mov dword [edx + 0xc], eax
mov ebx, dword [esp + 0x128]
mov ebp, dword [ebx + 0x24]
mov dword [esp + 0x24], ebp
mov esi, dword [ebx + 0x20]
mov eax, ebx
mov ebx, dword [ebx + 0x28]
test ebp, ebp
je 0x878642
mov edi, ebx
mov ebx, dword [esi + ebp*4 - 4]
mov ebp, dword [ebx + 0xc]
mov ebx, dword [ebx + 0x10]
test ebx, ebx
jbe 0x8786d9
mov ebx, dword [ebp + 4]
mov ebp, dword [ebp]
cmp ebp, ecx
jne 0x87863b
mov dword [esp + 0x90], ebx
mov ebx, dword [edx + 0xc]
mov edx, dword [ebx + 4]
mov ebx, dword [ebx]
cmp ebx, ecx
jne 0x87862f
cmp ebp, ecx
jne 0x878628
cmp ebx, ecx
je 0x87859e
xor edx, edx
test dl, dl
je 0x87851a
mov edx, dword [esp + 0x24]
mov dword [eax + 0x24], edx
mov dword [eax + 0x28], edi
mov edx, dword [0x10fd360]
test edx, edx
jne 0x878506
mov dword [eax + 0x20], esi
mov edx, dword [esp + 0x60]
inc edx
mov ecx, edx
jmp 0x878165
mov edi, dword [esp + 0xb0]
mov edx, eax
mov eax, esi
call fcn.00460b40
mov eax, edx
jmp 0x8784fa
mov edx, dword [esp + 0x24]
lea ebx, [edx + 1]
cmp ebx, edi
ja 0x87855e
mov ebp, dword [0x10fd360]
lea ecx, [esi + edx*4]
test ebp, ebp
jne 0x878546
mov ecx, dword [esp + 0x9c]
mov dword [esi + edx*4], ecx
lea ecx, [0xc8dd60]
mov edx, ebx
jmp 0x8784e7
mov edx, edi
mov edi, ecx
mov ebp, eax
mov eax, dword [esp + 0x9c]
call fcn.00460b40
mov eax, ebp
mov edi, edx
jmp 0x87853c
lea eax, [0xb4a760]
mov dword [esp], eax
mov dword [esp + 4], esi
mov dword [esp + 8], edx
mov dword [esp + 0xc], edi
mov dword [esp + 0x10], ebx
call fcn.00447080
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
lea ebx, [eax + 1]
mov eax, dword [esp + 0x128]
lea ecx, [0xc8dd60]
mov edx, dword [esp + 0x24]
jmp 0x878525
mov dword [esp + 0x84], edx
mov dword [esp + 0x68], esi
mov dword [esp + 0x5c], edi
mov eax, dword [esp + 0x90]
mov ecx, dword [eax + 0xc]
mov eax, dword [eax + 0x10]
lea edx, [0xab5160]
mov dword [esp], edx
mov ebx, dword [0x10e3670]
mov dword [esp + 4], ebx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], eax
call fcn.00410690
mov eax, dword [esp + 0x10]
mov eax, dword [eax]
mov ecx, dword [esp + 0x84]
mov edx, dword [ecx + 0xc]
mov ecx, dword [ecx + 0x10]
lea ebx, [0xab48e0]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov dword [esp + 0xc], ecx
call fcn.00410690
mov eax, dword [esp + 0x10]
movzx edx, byte [eax]
mov eax, dword [esp + 0x128]
lea ecx, [0xc8dd60]
mov esi, dword [esp + 0x68]
mov edi, dword [esp + 0x5c]
jmp 0x8784df
xor edx, edx
jmp 0x8784df
cmp ebp, ecx
mov edx, 0
jmp 0x8784cf
xor ebx, ebx
jmp 0x8784b6
mov edi, ebx
jmp 0x87851a
lea edi, [edx + 0xc]
call fcn.00460b40
jmp 0x878476
lea edi, [eax + 4]
mov edx, eax
mov eax, dword [esp + 0x78]
call fcn.00460b40
mov eax, edx
jmp 0x878450
lea edi, [eax + 0xc]
mov edx, eax
mov eax, dword [esp + 0x74]
call fcn.00460b40
mov eax, edx
jmp 0x8783f0
lea edi, [edx + 4]
mov eax, ecx
call fcn.00460b40
jmp 0x8783ae
mov eax, dword [esp + 0x128]
mov ebp, dword [esp + 0x130]
mov ecx, dword [esp + 0x60]
jmp 0x878304
mov ecx, 0
jmp 0x877c00
add esp, 0x124
ret
xor eax, eax
mov ecx, esi
call fcn.00460bc0
xor eax, eax
mov ecx, esi
call fcn.00460bc0
mov eax, ebx
mov ecx, ebp
call fcn.00460bc0
mov eax, ebp
call fcn.00460bc0
xor eax, eax
mov ecx, ebx
call fcn.00460bc0
mov ecx, eax
xor eax, eax
call fcn.00460bc0
xor eax, eax
mov ecx, edx
call fcn.00460bc0
xor eax, eax
call fcn.00460bc0
nop
call fcn.0045f5f0
jmp fcn.00877b90