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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x6c
mov eax, dword [ecx + 0x1f8]
mov dword [esp + 0x3c], eax
mov eax, dword [ecx + 0x200]
mov dword [esp + 0x48], eax
mov eax, dword [ecx + 0x94]
mov dword [esp + 0x44], eax
mov eax, dword [ecx + 4]
mov dword [esp + 0x28], eax
mov eax, dword [ecx + 8]
mov dword [esp + 0x18], eax
mov eax, dword [ecx + 0x10]
mov dword [esp + 0x2c], eax
add eax, dword [esp + 0x18]
push ebx
push esi
mov esi, dword [ecx + 0x98]
mov ebx, edx
mov dword [esp + 0x54], eax
mov eax, dword [ecx + 0xc]
push edi
lea edi, [ecx + 0x170]
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0x34]
add ecx, eax
mov dword [esp + 0x40], edi
add eax, dword [esp + 0x24]
mov dword [esp + 0x3c], eax
mov eax, dword [ebp + 8]
add eax, ebx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x18], edx
mov dword [esp + 0x10], eax
lea ecx, [eax - 8]
mov dword [esp + 0x2c], ecx
mov ecx, dword [edi + 0x24]
mov dword [esp + 0x20], ecx
mov ecx, dword [edi + 0x28]
mov dword [esp + 0x30], ecx
cmp ebx, dword [esp + 0x2c]
jae 0x479e71
mov eax, 0x40
sub eax, esi
mov dword [esp + 0x44], eax
nop dword [eax]
push dword [ebp + 0xc]
mov edx, dword [esp + 0x54]
mov ecx, ebx
mov dword [esp + 0x78], ebx
call fcn.004781a0
mov ecx, dword [esp + 0x58]
add esp, 4
mov edi, dword [esp + 0x34]
lea esi, [ecx + eax*4]
mov eax, edi
mov ecx, dword [esi]
cmp ecx, dword [esp + 0x14]
push 0xcf1bbcdc
cmovb eax, dword [esp + 0x28]
push 0xb7a56463
push dword [ebx + 4]
add eax, ecx
mov dword [esp + 0x68], ecx
push dword [ebx]
mov dword [esp + 0x70], eax
call fcn.004cb9f0
mov ecx, dword [esp + 0x44]
call fcn.004cb410
mov ecx, dword [esp + 0x48]
mov edx, dword [ecx + eax*4]
lea ecx, [ecx + eax*4]
cmp edx, dword [esp + 0x14]
mov eax, edi
mov dword [esp + 0x68], edx
cmovb eax, dword [esp + 0x24]
add edx, eax
mov eax, ebx
sub eax, edi
mov dword [esp + 0x6c], edx
mov dword [esp + 0x28], eax
sub eax, dword [esp + 0x20]
inc eax
mov dword [esp + 0x4c], eax
mov eax, edi
mov edi, dword [esp + 0x4c]
cmp edi, dword [esp + 0x14]
cmovb eax, dword [esp + 0x24]
add eax, edi
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x28]
mov dword [ecx], eax
mov dword [esi], eax
mov esi, dword [esp + 0x14]
mov eax, esi
sub eax, edi
dec eax
cmp eax, 3
mov eax, dword [esp + 0x38]
sbb ecx, ecx
inc ecx
cmp eax, edi
mov edi, dword [esp + 0x40]
sbb eax, eax
neg eax
test eax, ecx
je 0x479946
mov eax, dword [esp + 0x64]
lea ecx, [ebx + 1]
mov dword [esp + 0x70], ecx
mov eax, dword [eax]
cmp eax, dword [ecx]
jne 0x479946
mov edx, dword [esp + 0x10]
mov edi, edx
cmp dword [esp + 0x4c], esi
mov ecx, edx
mov esi, dword [esp + 0x64]
cmovb edi, dword [esp + 0x3c]
add ebx, 5
add esi, 4
mov dword [esp + 0x6c], ebx
mov eax, ebx
sub eax, esi
add eax, edi
cmp eax, edx
mov edx, esi
cmovb ecx, eax
push ecx
mov ecx, ebx
call fcn.004780e0
mov ebx, eax
add esp, 4
lea ecx, [ebx + esi]
cmp ecx, edi
jne 0x479930
mov ecx, dword [esp + 0x6c]
push dword [esp + 0x10]
mov edx, dword [esp + 0x20]
lea ecx, [ebx + ecx]
call fcn.004780e0
add esp, 4
add ebx, eax
mov edi, dword [esp + 0x18]
lea esi, [ebx + 4]
mov ebx, dword [esp + 0x70]
mov edx, ebx
sub edx, edi
xor eax, eax
jmp 0x479c29
mov ecx, dword [esp + 0x68]
cmp ecx, dword [esp + 0x38]
jbe 0x479a21
mov eax, dword [edx]
cmp eax, dword [ebx]
jne 0x479a21
mov eax, dword [ebx + 4]
cmp dword [edx + 4], eax
jne 0x479a21
mov edx, dword [esp + 0x10]
cmp ecx, esi
mov eax, dword [esp + 0x1c]
mov edi, edx
cmovb eax, dword [esp + 0x58]
mov ecx, edx
cmovb edi, dword [esp + 0x3c]
mov esi, dword [esp + 0x6c]
mov dword [esp + 0x64], eax
add esi, 8
lea eax, [ebx + 8]
sub eax, esi
add eax, edi
cmp eax, edx
mov edx, esi
cmovb ecx, eax
push ecx
lea ecx, [ebx + 8]
call fcn.004780e0
add esp, 4
mov dword [esp + 0x70], eax
lea ecx, [eax + esi]
cmp ecx, edi
jne 0x4799cb
push dword [esp + 0x10]
mov edx, dword [esp + 0x20]
lea ecx, [eax + 8]
add ecx, ebx
call fcn.004780e0
add esp, 4
add eax, dword [esp + 0x70]
mov edx, dword [esp + 0x6c]
lea esi, [eax + 8]
mov eax, dword [esp + 0x28]
sub eax, dword [esp + 0x68]
cmp dword [esp + 0x64], edx
mov edi, dword [esp + 0x18]
sbb ecx, ecx
mov dword [esp + 0x70], eax
neg ecx
cmp edi, ebx
sbb eax, eax
neg eax
test eax, ecx
je 0x479a10
mov al, byte [ebx - 1]
dec edx
cmp al, byte [edx]
jne 0x479a10
dec ebx
inc esi
cmp dword [esp + 0x64], edx
sbb ecx, ecx
neg ecx
cmp edi, ebx
sbb eax, eax
neg eax
test eax, ecx
jne 0x4799f4
mov eax, dword [esp + 0x20]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x70]
jmp 0x479c1e
mov ecx, dword [esp + 0x38]
cmp dword [esp + 0x5c], ecx
jbe 0x479e49
mov eax, dword [esp + 0x60]
mov eax, dword [eax]
cmp eax, dword [ebx]
jne 0x479e49
push 0xcf1bbcdc
lea edi, [ebx + 1]
push 0xb7a56463
push dword [edi + 4]
mov dword [esp + 0x74], edi
push dword [edi]
call fcn.004cb9f0
mov ecx, dword [esp + 0x44]
call fcn.004cb410
mov ecx, dword [esp + 0x48]
mov edx, dword [ecx + eax*4]
lea ecx, [ecx + eax*4]
cmp edx, dword [esp + 0x14]
mov esi, dword [esp + 0x34]
cmovb esi, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
add esi, edx
inc eax
mov dword [esp + 0x4c], edx
mov dword [esp + 0x64], esi
mov dword [ecx], eax
cmp edx, dword [esp + 0x38]
jbe 0x479b66
mov eax, dword [esi]
mov ecx, dword [edi + 4]
cmp eax, dword [edi]
jne 0x479b66
cmp dword [esi + 4], ecx
jne 0x479b66
mov edx, dword [esp + 0x10]
mov edi, edx
mov eax, dword [esp + 0x14]
cmp dword [esp + 0x4c], eax
mov ecx, dword [esp + 0x1c]
cmovb ecx, dword [esp + 0x58]
cmovb edi, dword [esp + 0x3c]
add esi, 8
add ebx, 9
mov dword [esp + 0x6c], ecx
mov eax, ebx
mov dword [esp + 0x70], ebx
sub eax, esi
mov ecx, edx
add eax, edi
cmp eax, edx
mov edx, esi
cmovb ecx, eax
push ecx
mov ecx, ebx
call fcn.004780e0
mov ebx, eax
add esp, 4
lea ecx, [ebx + esi]
cmp ecx, edi
jne 0x479b0f
mov ecx, dword [esp + 0x70]
push dword [esp + 0x10]
mov edx, dword [esp + 0x20]
lea ecx, [ebx + ecx]
call fcn.004780e0
add esp, 4
add ebx, eax
mov eax, dword [esp + 0x28]
lea esi, [ebx + 8]
sub eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x64]
inc eax
cmp dword [esp + 0x6c], edx
mov ebx, dword [esp + 0x68]
mov edi, dword [esp + 0x18]
sbb ecx, ecx
neg ecx
mov dword [esp + 0x68], eax
cmp edi, ebx
sbb eax, eax
neg eax
test eax, ecx
je 0x479c12
mov al, byte [ebx - 1]
dec edx
cmp al, byte [edx]
jne 0x479c12
dec ebx
inc esi
cmp dword [esp + 0x6c], edx
sbb ecx, ecx
neg ecx
cmp edi, ebx
sbb eax, eax
neg eax
test eax, ecx
jne 0x479b41
jmp 0x479c12
mov edx, dword [esp + 0x10]
mov edi, edx
mov eax, dword [esp + 0x14]
cmp dword [esp + 0x5c], eax
lea eax, [ebx + 4]
mov ecx, dword [esp + 0x1c]
cmovb ecx, dword [esp + 0x58]
cmovb edi, dword [esp + 0x3c]
mov esi, dword [esp + 0x60]
add esi, 4
mov dword [esp + 0x6c], ecx
sub eax, esi
mov ecx, edx
add eax, edi
cmp eax, edx
mov edx, esi
cmovb ecx, eax
push ecx
lea ecx, [ebx + 4]
call fcn.004780e0
add esp, 4
mov dword [esp + 0x70], eax
lea ecx, [eax + esi]
cmp ecx, edi
jne 0x479bcd
push dword [esp + 0x10]
mov edx, dword [esp + 0x20]
lea ecx, [eax + 4]
add ecx, ebx
call fcn.004780e0
add esp, 4
add eax, dword [esp + 0x70]
mov edx, dword [esp + 0x60]
lea esi, [eax + 4]
mov eax, dword [esp + 0x28]
sub eax, dword [esp + 0x5c]
cmp dword [esp + 0x6c], edx
mov edi, dword [esp + 0x18]
sbb ecx, ecx
mov dword [esp + 0x68], eax
neg ecx
cmp edi, ebx
sbb eax, eax
neg eax
test eax, ecx
je 0x479c12
mov al, byte [ebx - 1]
dec edx
cmp al, byte [edx]
jne 0x479c12
dec ebx
inc esi
cmp dword [esp + 0x6c], edx
sbb ecx, ecx
neg ecx
cmp edi, ebx
sbb eax, eax
neg eax
test eax, ecx
jne 0x479bf6
mov eax, dword [esp + 0x20]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x68]
mov edx, ebx
mov dword [esp + 0x20], eax
sub edx, edi
add eax, 2
lea ecx, [esi - 3]
push ecx
push eax
push edi
mov edi, dword [esp + 0x4c]
mov ecx, edi
call fcn.00478060
mov eax, dword [esp + 0x38]
add ebx, esi
add esp, 0xc
mov edx, ebx
mov dword [esp + 0x18], edx
cmp ebx, eax
ja 0x479e69
mov esi, dword [esp + 0x74]
mov edi, dword [esp + 0x28]
push dword [ebp + 0xc]
mov edx, dword [esp + 0x54]
add edi, 2
lea ecx, [esi + 2]
call fcn.004781a0
mov ecx, dword [esp + 0x58]
add esp, 4
push 0xcf1bbcdc
push 0xb7a56463
mov dword [ecx + eax*4], edi
push dword [esi + 6]
push dword [esi + 2]
call fcn.004cb9f0
mov ecx, dword [esp + 0x44]
call fcn.004cb410
mov ecx, dword [esp + 0x48]
push dword [ebp + 0xc]
mov edx, dword [esp + 0x54]
mov dword [ecx + eax*4], edi
mov edi, ebx
sub edi, dword [esp + 0x38]
lea ecx, [ebx - 2]
add edi, 0xfffffffe
call fcn.004781a0
mov ecx, dword [esp + 0x58]
add esp, 4
push 0xcf1bbcdc
push 0xb7a56463
mov dword [ecx + eax*4], edi
push dword [ebx + 2]
push dword [ebx - 2]
call fcn.004cb9f0
mov ecx, dword [esp + 0x44]
call fcn.004cb410
mov ecx, dword [esp + 0x48]
mov dword [ecx + eax*4], edi
mov edi, dword [esp + 0x40]
mov ecx, dword [esp + 0x14]
mov eax, ebx
sub eax, dword [esp + 0x34]
mov esi, dword [esp + 0x24]
mov edx, eax
sub edx, dword [esp + 0x30]
cmp edx, ecx
mov dword [esp + 0x70], eax
cmovae esi, dword [esp + 0x34]
sub ecx, edx
dec ecx
add esi, edx
cmp ecx, 3
sbb ecx, ecx
inc ecx
cmp dword [esp + 0x38], edx
sbb eax, eax
neg eax
test eax, ecx
je 0x479e59
mov eax, dword [esi]
cmp eax, dword [ebx]
jne 0x479e59
cmp edx, dword [esp + 0x14]
lea eax, [ebx + 4]
mov ecx, dword [esp + 0x10]
mov edi, ecx
cmovb edi, dword [esp + 0x3c]
add esi, 4
sub eax, esi
mov edx, esi
add eax, edi
cmp eax, ecx
cmovb ecx, eax
push ecx
lea ecx, [ebx + 4]
call fcn.004780e0
add esp, 4
mov dword [esp + 0x74], eax
lea ecx, [eax + esi]
cmp ecx, edi
jne 0x479d79
push dword [esp + 0x10]
mov edx, dword [esp + 0x20]
lea ecx, [eax + 4]
add ecx, ebx
call fcn.004780e0
add esp, 4
add eax, dword [esp + 0x74]
mov edi, dword [esp + 0x40]
lea ecx, [eax + 4]
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x20]
mov dword [esp + 0x20], eax
mov eax, dword [edi + 0xc]
mov esi, eax
mov dword [esp + 0x30], edx
mov edx, ebx
mov dword [esp + 0x6c], ecx
nop dword [eax + eax]
mov ecx, dword [edx]
lea edx, [edx + 8]
mov dword [eax], ecx
mov ecx, dword [edx - 4]
mov dword [eax + 4], ecx
add eax, 8
cmp eax, esi
jb 0x479da0
mov eax, dword [edi + 4]
xor ecx, ecx
mov edx, dword [esp + 0x6c]
add edx, 0xfffffffd
mov word [eax + 4], cx
mov eax, dword [edi + 4]
mov dword [eax], 1
mov ecx, dword [edi + 4]
cmp edx, 0xffff
jbe 0x479de9
mov eax, ecx
mov dword [edi + 0x1c], 2
sub eax, dword [edi]
sar eax, 3
mov dword [edi + 0x20], eax
push dword [ebp + 0xc]
mov word [ecx + 6], dx
mov ecx, ebx
mov edx, dword [esp + 0x54]
add dword [edi + 4], 8
call fcn.004781a0
mov ecx, dword [esp + 0x58]
add esp, 4
mov esi, dword [esp + 0x70]
push 0xcf1bbcdc
push 0xb7a56463
mov dword [ecx + eax*4], esi
push dword [ebx + 4]
push dword [ebx]
call fcn.004cb9f0
mov ecx, dword [esp + 0x44]
call fcn.004cb410
mov ecx, dword [esp + 0x48]
add ebx, dword [esp + 0x6c]
mov edx, ebx
mov dword [esp + 0x18], edx
mov dword [ecx + eax*4], esi
mov eax, dword [esp + 0x2c]
cmp ebx, eax
jbe 0x479ce5
jmp 0x479e61
mov edx, dword [esp + 0x18]
mov eax, ebx
sub eax, edx
sar eax, 8
inc eax
add ebx, eax
jmp 0x479e5d
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x2c]
cmp ebx, eax
jb 0x479800
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x30]
mov ebx, dword [esp + 0x20]
sub eax, edx
mov dword [edi + 0x30], ebx
mov dword [edi + 0x34], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret