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

Disassembly:
sub esp, 0x120
push ebx
mov ebx, dword [esp + 0x128]
push ebp
push esi
mov esi, dword [esp + 0x13c]
or eax, 0xffffffff
push edi
mov dword [esp + 0x2c], eax
mov ecx, dword [esi + 0x884]
mov dword [esp + 0x20], eax
mov eax, dword [esi + 0x4c]
push 0x178
push ebx
mov dword [esp + 0x5c], eax
mov dword [esp + 0x2c], ecx
call fcn.004ac6d0
lea edx, [esp + 0x64]
mov ebp, eax
push edx
mov dword [esp + 0x20], ebp
call fcn.0046e130
mov edi, dword [esp + 0x148]
add esp, 0xc
test edi, edi
jge 0x4b9f20
mov edi, dword [esp + 0x138]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov edi, ecx
push ebx
call fcn.0044f150
mov eax, dword [esi + 0xc]
add esp, 4
test eax, eax
mov dword [esp + 0x10], 1
je 0x4b9f44
mov eax, dword [eax + 8]
mov ecx, dword [eax + 4]
mov dword [esp + 0x3c], ecx
jmp 0x4b9f4c
mov dword [esp + 0x3c], 0
mov eax, dword [esp + 0x138]
mov edx, dword [esi + 0x888]
push ebp
push 0
push edi
mov dword [esp + 0x28], eax
push eax
mov eax, dword [esp + 0x144]
mov ebx, edi
push eax
mov dword [esp + 0x58], ebx
mov dword [esp + 0x3c], edx
call fcn.004b76c0
add esp, 0x14
test eax, eax
jne 0x4ba904
mov eax, dword [ebp + 0x10]
test eax, eax
jle 0x4ba8b4
mov eax, dword [esp + 0x10]
xor ebx, ebx
test eax, eax
mov dword [esp + 0x30], ebx
jne 0x4ba00d
mov ecx, dword [esi + 0x4c]
mov eax, dword [esi + 0x50]
cmp ecx, eax
jne 0x4b9fb0
push esi
call fcn.004bbec0
add esp, 4
mov edx, dword [esi + 0x4c]
mov byte [edx], 3
mov edi, dword [esi + 0x4c]
inc edi
mov dword [esi + 0x88c], 0
mov dword [esi + 0x4c], edi
mov eax, dword [0x537bb8]
test eax, eax
mov ecx, edi
je 0x4b9ff4
cmp eax, 0x80000000
jne 0x4b9fe0
mov eax, 1
jmp 0x4b9ff1
test eax, eax
jge 0x4b9ff1
mov edx, dword [esi + 0x20]
mov edi, dword [esi + 0x1c]
cmp edi, edx
jge 0x4b9ff1
mov dword [esi + 0x1c], edx
add dword [esi + 0x20], eax
mov eax, dword [esi + 0x48]
mov edi, dword [esp + 0x20]
mov edx, dword [esi + 0x78]
sub ecx, eax
mov eax, dword [esp + 0x2c]
sub ecx, edi
shl eax, 4
mov dword [edx + eax + 4], ecx
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
mov dword [esp + 0x10], eax
lea edx, [eax + ecx - 1]
mov ecx, dword [ebp + 0x30]
cmp ecx, edx
jne 0x4ba027
dec eax
mov dword [esp + 0x10], eax
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp + 0x14]
xor ecx, ecx
test edx, edx
jle 0x4ba054
cmp dword [eax], 0x100
je 0x4ba04b
mov edi, dword [eax + 0xc]
inc ecx
inc edi
shl edi, 4
add eax, edi
cmp ecx, edx
jl 0x4ba033
jmp 0x4ba054
mov ebx, 1
mov dword [esp + 0x30], ebx
mov edi, dword [esi + 0x10]
mov edx, dword [esi + 0x48]
inc edi
mov eax, edi
mov dword [esi + 0x10], edi
lea ecx, [eax - 1]
mov eax, dword [esi + 0x4c]
sub eax, edx
mov edx, dword [esi + 4]
mov dword [esp + 0x20], eax
push eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x30], ecx
sub eax, edx
push eax
push ecx
push esi
call fcn.004bbf50
add esp, 0x10
test ebx, ebx
je 0x4ba0dd
mov ecx, dword [esi + 0x4c]
mov eax, dword [esi + 0x50]
cmp ecx, eax
jne 0x4ba09b
push esi
call fcn.004bbec0
add esp, 4
mov edx, dword [esi + 0x4c]
mov byte [edx], 0x64
mov edx, dword [esi + 0x4c]
inc edx
mov dword [esi + 0x88c], 0
mov dword [esi + 0x4c], edx
mov eax, dword [0x5384d0]
test eax, eax
je 0x4ba0dd
cmp eax, 0x80000000
jne 0x4ba0c9
mov eax, 1
jmp 0x4ba0da
test eax, eax
jge 0x4ba0da
mov ecx, dword [esi + 0x20]
mov edx, dword [esi + 0x1c]
cmp edx, ecx
jge 0x4ba0da
mov dword [esi + 0x1c], ecx
add dword [esi + 0x20], eax
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
lea edx, [esp + 0x28]
mov eax, dword [edi + 8]
push eax
push ecx
push edx
call fcn.00440c50
mov edx, dword [esp + 0x34]
mov eax, dword [edi + 8]
lea ecx, [esp + 0x58]
mov ebx, dword [esp + 0x30]
push ecx
mov ecx, dword [edi + 0x10]
push edx
mov edx, dword [edi + 0xc]
push ecx
mov ecx, dword [edi + 0x14]
push edx
mov edx, dword [esi + 4]
push eax
sub eax, edx
push ecx
push eax
push ebx
call fcn.004bc070
mov eax, dword [ebx + 0x10]
mov ecx, dword [edi + 0x10]
mov ebp, dword [edi + 0x14]
add esp, 0x2c
dec eax
xor ebx, ebx
test ecx, ecx
mov dword [esp + 0x58], eax
mov dword [esp + 0x18], ebx
mov dword [esp + 0x38], ebp
jle 0x4ba696
lea eax, [eax + eax*2]
shl eax, 2
mov dword [esp + 0x48], eax
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x48]
mov eax, dword [edx + 8]
mov edx, dword [ecx + eax + 8]
mov eax, dword [edx + ebx*4]
mov dword [esi + 0x888], eax
mov eax, dword [ebp]
cmp eax, 2
je 0x4ba239
mov ecx, dword [ebp + 0xc]
mov eax, dword [esp + 0x134]
push esi
lea edx, [ebp + 0x10]
push ecx
push edx
push eax
call fcn.004baa90
mov eax, dword [ebp]
add esp, 0x10
cmp eax, 0x100
jne 0x4ba675
mov ecx, dword [esi + 0x4c]
mov eax, dword [esi + 0x50]
add ecx, 5
cmp ecx, eax
jbe 0x4ba1ac
push esi
call fcn.004bbec0
add esp, 4
mov edx, dword [esi + 0x4c]
mov byte [edx], 0x65
mov eax, dword [esi + 0x4c]
mov ecx, dword [esi + 0x20]
inc eax
shr ecx, 0x18
mov dword [esi + 0x4c], eax
mov byte [eax], cl
mov edx, dword [esi + 0x4c]
inc edx
mov dword [esi + 0x4c], edx
mov eax, edx
mov edx, dword [esi + 0x20]
shr edx, 0x10
mov byte [eax], dl
mov edi, dword [esi + 0x4c]
mov ecx, dword [esi + 0x20]
inc edi
mov eax, edi
mov dword [esi + 0x4c], edi
shr ecx, 8
mov byte [eax], cl
mov edi, dword [esi + 0x4c]
mov dl, byte [esi + 0x20]
inc edi
mov eax, edi
mov dword [esi + 0x4c], edi
mov byte [eax], dl
mov edx, dword [esi + 0x4c]
inc edx
mov dword [esi + 0x88c], 0
mov dword [esi + 0x4c], edx
mov eax, dword [0x5384e8]
test eax, eax
je 0x4ba675
cmp eax, 0x80000000
jne 0x4ba220
mov ecx, dword [esi + 0x20]
mov eax, 1
sub eax, ecx
test eax, eax
jge 0x4ba231
mov ecx, dword [esi + 0x20]
mov edx, dword [esi + 0x1c]
cmp edx, ecx
jge 0x4ba231
mov dword [esi + 0x1c], ecx
add dword [esi + 0x20], eax
jmp 0x4ba675
test ebx, ebx
jne 0x4ba555
mov eax, dword [esp + 0x30]
test eax, eax
jne 0x4ba555
lea eax, [esp + 0x5c]
push ebx
push eax
call fcn.0046e2c0
mov ecx, dword [ebp + 0x18]
mov edx, dword [ebp + 0x14]
push ecx
lea eax, [esp + 0x68]
push edx
push eax
call fcn.0046e150
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x70]
push ebx
mov ebx, dword [esp + 0x14c]
push ecx
push edx
push ebx
call fcn.00471e10
mov edi, eax
add esp, 0x24
test edi, edi
mov dword [esp + 0x40], edi
je 0x4ba502
mov eax, dword [edi + 0x10]
test eax, eax
je 0x4ba502
test byte [edi + 0x2c], 4
jne 0x4ba502
test byte [ebx + 0x100], 0x20
jne 0x4ba502
mov eax, dword [esi + 0x10]
mov edx, dword [esi + 0x48]
mov ecx, dword [esi + 0x88c]
mov dword [esp + 0x50], eax
mov eax, dword [esi + 0x4c]
xor ebp, ebp
mov edi, eax
sub edi, edx
test ecx, ecx
mov dword [esp + 0x34], edi
je 0x4ba36a
test edi, edi
je 0x4ba42f
mov dl, byte [eax - 1]
xor ecx, ecx
mov ch, byte [eax - 4]
xor ebx, ebx
mov cl, byte [eax - 3]
mov bl, byte [eax - 2]
shl ecx, 8
or ecx, ebx
mov edi, edx
and edi, 0xff
xor ebx, ebx
shl ecx, 8
or ecx, edi
inc ecx
shr ecx, 0x18
mov bh, cl
mov byte [eax - 4], cl
mov bl, byte [eax - 3]
xor ecx, ecx
mov cl, byte [eax - 2]
shl ebx, 8
or ebx, ecx
shl ebx, 8
or ebx, edi
inc ebx
mov ecx, ebx
xor ebx, ebx
mov bh, byte [eax - 4]
shr ecx, 0x10
mov byte [eax - 3], cl
mov bl, cl
xor ecx, ecx
mov cl, byte [eax - 2]
shl ebx, 8
or ebx, ecx
shl ebx, 8
or ebx, edi
mov edi, dword [esp + 0x34]
inc ebx
mov ecx, ebx
mov bl, byte [eax - 4]
shl bl, 8
or bl, byte [eax - 3]
shr ecx, 8
shl bl, 8
or bl, cl
mov byte [eax - 2], cl
shl bl, 8
or bl, dl
inc bl
mov byte [eax - 1], bl
jmp 0x4ba42f
mov ecx, dword [esi + 0x50]
add eax, 5
cmp eax, ecx
jbe 0x4ba37d
push esi
call fcn.004bbec0
add esp, 4
mov edx, dword [esi + 0x4c]
mov byte [edx], 0x69
mov ecx, dword [esi + 0x4c]
inc ecx
mov eax, ecx
mov dword [esi + 0x4c], ecx
mov byte [eax], 0
mov eax, dword [esi + 0x4c]
inc eax
mov dword [esi + 0x4c], eax
mov byte [eax], 0
mov ebp, dword [esi + 0x4c]
inc ebp
mov eax, ebp
mov dword [esi + 0x4c], ebp
mov ebp, 1
mov byte [eax], 0
mov ebx, dword [esi + 0x4c]
inc ebx
mov eax, ebx
mov dword [esi + 0x4c], ebx
mov byte [eax], 0
mov edx, dword [esi + 0x4c]
inc edx
mov dword [esi + 0x88c], ebp
mov dword [esi + 0x4c], edx
mov eax, dword [0x538548]
test eax, eax
je 0x4ba3eb
cmp eax, 0x80000000
jne 0x4ba3d7
mov eax, ebp
jmp 0x4ba3e8
test eax, eax
jge 0x4ba3e8
mov ecx, dword [esi + 0x20]
mov ebx, dword [esi + 0x1c]
cmp ebx, ecx
jge 0x4ba3e8
mov dword [esi + 0x1c], ecx
add dword [esi + 0x20], eax
mov eax, dword [esi + 0x50]
add edx, 4
cmp edx, eax
jbe 0x4ba3fe
push esi
call fcn.004bbec0
add esp, 4
mov eax, dword [esi + 0x4c]
mov byte [eax], 0
mov ebx, dword [esi + 0x4c]
inc ebx
mov eax, ebx
mov dword [esi + 0x4c], ebx
mov byte [eax], 0
mov edx, dword [esi + 0x4c]
inc edx
mov eax, edx
mov dword [esi + 0x4c], edx
mov byte [eax], 0
mov ecx, dword [esi + 0x4c]
inc ecx
mov eax, ecx
mov dword [esi + 0x4c], ecx
mov byte [eax], 1
mov eax, dword [esi + 0x4c]
inc eax
mov dword [esi + 0x4c], eax
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x134]
push esi
push eax
push ecx
push edx
call dword [eax + 0x10]
add esp, 0x10
test eax, eax
je 0x4ba6e3
mov eax, dword [esi + 0x88c]
test eax, eax
je 0x4ba4eb
test edi, edi
je 0x4ba4eb
mov eax, dword [esi + 0x4c]
xor ecx, ecx
sub eax, 4
xor ebx, ebx
mov ch, byte [eax]
mov dl, byte [eax + 3]
mov cl, byte [eax + 1]
mov bl, byte [eax + 2]
shl ecx, 8
or ecx, ebx
mov edi, edx
and edi, 0xff
xor ebx, ebx
shl ecx, 8
or ecx, edi
dec ecx
shr ecx, 0x18
mov bh, cl
mov byte [eax], cl
mov bl, byte [eax + 1]
xor ecx, ecx
mov cl, byte [eax + 2]
shl ebx, 8
or ebx, ecx
shl ebx, 8
or ebx, edi
dec ebx
mov ecx, ebx
xor ebx, ebx
mov bh, byte [eax]
shr ecx, 0x10
mov byte [eax + 1], cl
mov bl, cl
xor ecx, ecx
mov cl, byte [eax + 2]
shl ebx, 8
or ebx, ecx
shl ebx, 8
or ebx, edi
mov edi, dword [esp + 0x34]
dec ebx
mov ecx, ebx
mov bl, byte [eax]
shl bl, 8
or bl, byte [eax + 1]
shr ecx, 8
shl bl, 8
or bl, cl
mov byte [eax + 2], cl
shl bl, 8
or bl, dl
dec bl
mov byte [eax + 3], bl
mov eax, dword [esi + 0x48]
mov edx, dword [esp + 0x50]
mov ebp, dword [esp + 0x38]
add eax, edi
mov edi, dword [esp + 0x40]
mov dword [esi + 0x10], edx
mov dword [esi + 0x4c], eax
mov ecx, dword [ebp + 0x18]
mov edx, dword [ebp + 0x14]
push 2
push ecx
push edx
push esi
call fcn.004b70e0
add esp, 0x10
mov ebx, eax
test edi, edi
je 0x4ba537
mov ecx, dword [esi + 0x58]
push edi
shl eax, 4
mov edx, dword [eax + ecx + 4]
mov eax, dword [esp + 0x138]
push edx
push eax
call fcn.0044e5e0
add esp, 0xc
mov ecx, dword [esp + 0x14]
cmp dword [ecx + 0x10], 1
jne 0x4ba56a
mov edx, dword [esp + 0x134]
push ebx
push esi
push edx
call fcn.004b7250
add esp, 0xc
jmp 0x4ba56a
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp + 0x14]
push 0
push eax
push ecx
push esi
call fcn.004b70e0
add esp, 0x10
mov ebx, eax
cmp ebx, 0xff
jg 0x4ba5e0
mov edx, dword [esi + 0x4c]
mov eax, dword [esi + 0x50]
add edx, 2
cmp edx, eax
jbe 0x4ba588
push esi
call fcn.004bbec0
add esp, 4
mov eax, dword [esi + 0x4c]
mov byte [eax], 1
mov edi, dword [esi + 0x4c]
inc edi
mov eax, edi
mov dword [esi + 0x4c], edi
mov byte [eax], bl
mov edx, dword [esi + 0x4c]
inc edx
mov dword [esi + 0x88c], 0
mov dword [esi + 0x4c], edx
mov eax, dword [0x537b88]
test eax, eax
je 0x4ba671
cmp eax, 0x80000000
jne 0x4ba5c5
mov eax, 1
sub eax, ebx
test eax, eax
jge 0x4ba66e
mov ecx, dword [esi + 0x20]
mov edx, dword [esi + 0x1c]
cmp edx, ecx
jge 0x4ba66e
jmp 0x4ba66b
mov ecx, dword [esi + 0x4c]
mov eax, dword [esi + 0x50]
add ecx, 5
cmp ecx, eax
jbe 0x4ba5f6
push esi
call fcn.004bbec0
add esp, 4
mov edx, dword [esi + 0x4c]
mov ecx, ebx
shr ecx, 0x18
mov byte [edx], 2
mov eax, dword [esi + 0x4c]
inc eax
mov dword [esi + 0x4c], eax
mov byte [eax], cl
mov edx, dword [esi + 0x4c]
inc edx
mov ecx, ebx
mov dword [esi + 0x4c], edx
mov eax, edx
mov edx, ebx
shr edx, 0x10
mov byte [eax], dl
mov edi, dword [esi + 0x4c]
inc edi
mov eax, edi
mov dword [esi + 0x4c], edi
shr ecx, 8
mov byte [eax], cl
mov edi, dword [esi + 0x4c]
inc edi
mov eax, edi
mov dword [esi + 0x4c], edi
mov byte [eax], bl
mov edx, dword [esi + 0x4c]
inc edx
mov dword [esi + 0x88c], 0
mov dword [esi + 0x4c], edx
mov eax, dword [0x537ba0]
test eax, eax
je 0x4ba671
cmp eax, 0x80000000
jne 0x4ba65d
mov eax, 1
sub eax, ebx
test eax, eax
jge 0x4ba66e
mov ecx, dword [esi + 0x20]
mov edx, dword [esi + 0x1c]
cmp edx, ecx
jge 0x4ba66e
mov dword [esi + 0x1c], ecx
add dword [esi + 0x20], eax
mov ebx, dword [esp + 0x18]
mov edx, dword [ebp + 0xc]
mov eax, dword [esp + 0x14]
inc ebx
inc edx
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x18], ebx
shl edx, 4
add ebp, edx
cmp ebx, ecx
mov dword [esp + 0x38], ebp
jl 0x4ba14b
mov eax, dword [esp + 0x30]
test eax, eax
je 0x4ba74f
mov eax, dword [esi + 0x4c]
mov ecx, dword [esi + 0x50]
cmp eax, ecx
jne 0x4ba6b5
push esi
call fcn.004bbec0
add esp, 4
mov ecx, dword [esi + 0x4c]
mov byte [ecx], 0x66
mov edx, dword [esi + 0x4c]
inc edx
mov dword [esi + 0x88c], 0
mov dword [esi + 0x4c], edx
mov eax, dword [0x538500]
test eax, eax
je 0x4ba72d
cmp eax, 0x80000000
jne 0x4ba719
mov eax, 1
jmp 0x4ba72a
test ebp, ebp
je 0x4ba85c
mov ecx, dword [esi + 0x48]
mov eax, dword [esi + 0x4c]
sub eax, ecx
sub eax, edi
mov edx, eax
mov byte [ecx + edi + 4], al
shr edx, 0x18
mov byte [ecx + edi + 1], dl
mov edx, eax
shr edx, 0x10
mov byte [ecx + edi + 2], dl
mov edx, eax
shr edx, 8
mov byte [ecx + edi + 3], dl
jmp 0x4ba85c
test eax, eax
jge 0x4ba72a
mov ecx, dword [esi + 0x20]
mov edx, dword [esi + 0x1c]
cmp edx, ecx
jge 0x4ba72a
mov dword [esi + 0x1c], ecx
add dword [esi + 0x20], eax
mov edx, 1
sub edx, ebx
jns 0x4ba743
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x1c]
cmp ecx, eax
jge 0x4ba743
mov dword [esi + 0x1c], eax
mov eax, 1
sub eax, ebx
jmp 0x4ba859
test ebx, ebx
jle 0x4ba85c
cmp ebx, 0xff
jg 0x4ba7cd
mov ecx, dword [esi + 0x4c]
mov eax, dword [esi + 0x50]
add ecx, 2
cmp ecx, eax
jbe 0x4ba775
push esi
call fcn.004bbec0
add esp, 4
mov edx, dword [esi + 0x4c]
mov byte [edx], 6
mov edi, dword [esi + 0x4c]
inc edi
mov eax, edi
mov dword [esi + 0x4c], edi
mov byte [eax], bl
mov edx, dword [esi + 0x4c]
inc edx
mov dword [esi + 0x88c], 0
mov dword [esi + 0x4c], edx
mov eax, dword [0x537c00]
test eax, eax
je 0x4ba85c
cmp eax, 0x80000000
jne 0x4ba7b2
mov eax, 1
sub eax, ebx
test eax, eax
jge 0x4ba859
mov ecx, dword [esi + 0x20]
mov edx, dword [esi + 0x1c]
cmp edx, ecx
jge 0x4ba859
jmp 0x4ba856
mov eax, dword [esi + 0x4c]
mov ecx, dword [esi + 0x50]
add eax, 5
cmp eax, ecx
jbe 0x4ba7e3
push esi
call fcn.004bbec0
add esp, 4
mov ecx, dword [esi + 0x4c]
mov edx, ebx
shr edx, 0x18
mov byte [ecx], 7
mov eax, dword [esi + 0x4c]
inc eax
mov ecx, ebx
mov dword [esi + 0x4c], eax
mov byte [eax], dl
mov edi, dword [esi + 0x4c]
inc edi
mov edx, ebx
mov eax, edi
mov dword [esi + 0x4c], edi
shr ecx, 0x10
mov byte [eax], cl
mov eax, dword [esi + 0x4c]
inc eax
shr edx, 8
mov dword [esi + 0x4c], eax
mov byte [eax], dl
mov edi, dword [esi + 0x4c]
inc edi
mov eax, edi
mov dword [esi + 0x4c], edi
mov byte [eax], bl
mov edx, dword [esi + 0x4c]
inc edx
mov dword [esi + 0x88c], 0
mov dword [esi + 0x4c], edx
mov eax, dword [0x537c18]
test eax, eax
je 0x4ba85c
cmp eax, 0x80000000
jne 0x4ba848
mov eax, 1
sub eax, ebx
test eax, eax
jge 0x4ba859
mov ecx, dword [esi + 0x20]
mov edx, dword [esi + 0x1c]
cmp edx, ecx
jge 0x4ba859
mov dword [esi + 0x1c], ecx
add dword [esi + 0x20], eax
mov eax, dword [esi + 0x4c]
mov ebp, dword [esi + 0x48]
mov ebx, dword [esp + 0x20]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x2c]
sub eax, ebp
sub eax, ebx
push eax
push ecx
push edx
push esi
call fcn.004bc020
mov edi, dword [esp + 0x68]
mov ebx, dword [esp + 0x34]
mov dword [esp + 0x20], 0
mov eax, dword [ebx + 8]
lea edi, [edi + edi*2]
shl edi, 2
mov ecx, dword [edi + eax + 8]
push ecx
call fcn.00450140
mov edx, dword [ebx + 8]
mov eax, dword [esp + 0x60]
mov ebx, dword [esp + 0x58]
mov ebp, dword [esp + 0x28]
add esp, 0x14
mov dword [edi + edx + 8], eax
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0xc]
mov edi, eax
lea edx, [esp + 0x28]
add edi, ecx
mov ecx, dword [esp + 0x1c]
sub ecx, edi
push edi
add ebx, ecx
push eax
push edx
mov dword [esp + 0x50], ebx
mov dword [esp + 0x28], edi
call fcn.00440c50
push ebp
call fcn.004b86f0
add esp, 0x10
test ebx, ebx
jle 0x4ba937
mov eax, dword [esp + 0x134]
push ebp
push 0
push ebx
push edi
push eax
call fcn.004b76c0
add esp, 0x14
test eax, eax
je 0x4b9f84
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
mov edi, dword [ebp + 0x30]
lea edx, [ecx + eax - 1]
cmp edi, edx
jne 0x4ba916
dec eax
mov edi, dword [esp + 0x134]
push eax
mov eax, dword [esp + 0x13c]
push ecx
push eax
push edi
call fcn.00476550
push esi
push edi
call fcn.00487380
add esp, 0x18
mov ecx, dword [esp + 0x54]
mov eax, dword [esi + 0x4c]
cmp eax, ecx
jne 0x4baa53
xor edi, edi
push edi
call fcn.0044c570
push eax
push esi
call fcn.004b72f0
mov ebx, eax
add esp, 0xc
cmp ebx, 0xff
jg 0x4ba9ca
mov edx, dword [esi + 0x4c]
mov eax, dword [esi + 0x50]
add edx, 2
cmp edx, eax
jbe 0x4ba978
push esi
call fcn.004bbec0
add esp, 4
mov eax, dword [esi + 0x4c]
mov byte [eax], 1
mov eax, dword [esi + 0x4c]
inc eax
mov dword [esi + 0x4c], eax
mov byte [eax], bl
mov edx, dword [esi + 0x4c]
inc edx
mov dword [esi + 0x88c], edi
mov dword [esi + 0x4c], edx
mov eax, dword [0x537b88]
cmp eax, edi
je 0x4baa53
cmp eax, 0x80000000
jne 0x4ba9af
mov eax, 1
sub eax, ebx
cmp eax, edi
jge 0x4baa50
mov ecx, dword [esi + 0x20]
mov edx, dword [esi + 0x1c]
cmp edx, ecx
jge 0x4baa50
jmp 0x4baa4d
mov ecx, dword [esi + 0x4c]
mov eax, dword [esi + 0x50]
add ecx, 5
cmp ecx, eax
jbe 0x4ba9e0
push esi
call fcn.004bbec0
add esp, 4
mov edx, dword [esi + 0x4c]
mov ecx, ebx
shr ecx, 0x18
mov byte [edx], 2
mov eax, dword [esi + 0x4c]
inc eax
mov dword [esi + 0x4c], eax
mov byte [eax], cl
mov edx, dword [esi + 0x4c]
inc edx
mov ecx, ebx
mov dword [esi + 0x4c], edx
mov eax, edx
mov edx, ebx
shr edx, 0x10
mov byte [eax], dl
mov eax, dword [esi + 0x4c]
inc eax
shr ecx, 8
mov dword [esi + 0x4c], eax
mov byte [eax], cl
mov eax, dword [esi + 0x4c]
inc eax
mov dword [esi + 0x4c], eax
mov byte [eax], bl
mov edx, dword [esi + 0x4c]
inc edx
mov dword [esi + 0x88c], edi
mov dword [esi + 0x4c], edx
mov eax, dword [0x537ba0]
cmp eax, edi
je 0x4baa53
cmp eax, 0x80000000
jne 0x4baa3f
mov eax, 1
sub eax, ebx
cmp eax, edi
jge 0x4baa50
mov ecx, dword [esi + 0x20]
mov edx, dword [esi + 0x1c]
cmp edx, ecx
jge 0x4baa50
mov dword [esi + 0x1c], ecx
add dword [esi + 0x20], eax
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0x138]
mov edx, dword [esp + 0x134]
sub eax, ebx
push ebp
push edx
mov dword [esi + 8], eax
call fcn.004ac640
lea eax, [esp + 0x64]
push eax
call fcn.0046e340
add esp, 0xc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x120
ret