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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x13c
push ebx
push esi
push edi
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x3c], 0
mov byte [ebp - 0x11], 0
mov byte [ebp - 0x21], 0
mov byte [ebp - 0x22], 0
mov byte [ebp - 0x29], 0
lea ebx, [ebp - 0x10c]
mov dword [ebp - 0x34], 0
mov eax, dword [ebp + 0x18]
mov edx, dword [ebp + 0x10]
lea esi, [edx + eax]
mov dword [ebp - 0x1c], 0
lea eax, [esi - 1]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0xc], eax
test eax, eax
jne 0x4d3739
mov eax, dword [ebp + 0xc]
test eax, eax
jne 0x4d3739
mov eax, dword [ebp + 0x10]
test eax, eax
jne 0x4d3739
cmp dword [ebp + 0x14], 0xfffffc19
jne 0x4d3739
cmp dword [ebp + 0x18], 0xfffffc19
jne 0x4d3739
push 0
push 0
push 0
push 0
push 0
push 0
push 0
call fcn.004c7180
add esp, 0x1c
jmp 0x4d4838
mov eax, dword [ebp + 0x1c]
and eax, 0xe20f5a6f
je 0x4d374d
mov eax, 0xfffffffd
jmp 0x4d4838
mov eax, dword [ebp - 0xc]
test eax, eax
je 0x4d3768
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x4d3768
mov eax, dword [ebp + 0x20]
test eax, eax
jne 0x4d3772
cmp dword [ebp + 0x24], 0
jle 0x4d3772
mov eax, 0xfffffffe
jmp 0x4d4838
cmp dword [ebp + 0x24], 0
jge 0x4d3782
mov eax, 0xfffffff1
jmp 0x4d4838
cmp dword [ebp + 0x14], 0
jge 0x4d3792
mov eax, 0xffffffe0
jmp 0x4d4838
mov eax, dword [ebp + 0x18]
test eax, eax
jl 0x4d379e
cmp eax, dword [ebp + 0x14]
jle 0x4d37a8
mov eax, 0xffffffe8
jmp 0x4d4838
mov eax, dword [ebp - 0xc]
cmp dword [eax], 0x50435245
je 0x4d37ce
mov eax, dword [ebp - 0xc]
cmp dword [eax], 0x45524350
sete al
and eax, 1
dec eax
and eax, 0x19
add eax, 0xffffffe3
jmp 0x4d4838
mov eax, dword [ebp - 0xc]
test word [eax + 0xc], 1
jne 0x4d37e3
mov eax, 0xffffffe4
jmp 0x4d4838
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 8]
and eax, 0x800
setne al
and eax, 1
mov dword [ebx + 0x48], eax
mov dword [ebp - 8], eax
mov eax, dword [ebp + 0x1c]
and eax, 0x8000000
je 0x4d380b
mov edi, 2
jmp 0x4d381b
mov eax, dword [ebp + 0x1c]
and eax, 0x8000
setne al
and eax, 1
mov edi, eax
mov dword [ebx + 0x88], edi
cmp dword [ebp - 8], 0
je 0x4d38d6
test word [ebp + 0x1c], 0x2000
jne 0x4d38d6
lea eax, [ebp - 0x114]
push eax
mov eax, dword [ebp + 0x14]
push eax
mov eax, dword [ebp + 0x10]
push eax
call fcn.004d95b0
add esp, 0xc
mov dword [ebp - 0x110], eax
cmp dword [ebp - 0x110], 0
je 0x4d38ad
cmp dword [ebp + 0x24], 2
jl 0x4d387a
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp - 0x114]
mov dword [edx], eax
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp - 0x110]
mov dword [edx + 4], eax
cmp dword [ebp - 0x110], 5
jg 0x4d3898
cmp dword [ebx + 0x88], 1
jle 0x4d3898
mov dword [ebp - 0x118], 0xffffffe7
jmp 0x4d38a2
mov dword [ebp - 0x118], 0xfffffff6
mov eax, dword [ebp - 0x118]
jmp 0x4d4838
mov eax, dword [ebp + 0x18]
test eax, eax
jle 0x4d38d6
cmp eax, dword [ebp + 0x14]
jge 0x4d38d6
mov edx, dword [ebp + 0x10]
movzx eax, byte [edx + eax]
and eax, 0xc0
cmp eax, 0x80
jne 0x4d38d6
mov eax, 0xfffffff5
jmp 0x4d4838
mov eax, dword [ebp - 0xc]
movzx edx, word [eax + 0x18]
add eax, edx
mov dword [ebx + 0x28], eax
mov eax, dword [ebp - 0xc]
movzx eax, word [eax + 0x1c]
mov dword [ebx + 0x20], eax
mov eax, dword [ebp - 0xc]
movzx eax, word [eax + 0x1a]
mov dword [ebx + 0x24], eax
mov dword [ebp - 0x20], 0
mov dword [ebx + 4], 0x989680
mov dword [ebx + 8], 0x989680
mov dword [ebx + 0xa8], 0
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0x20]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x4d3991
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
mov dword [ebp - 0x110], eax
test byte [ebp - 0x110], 1
je 0x4d3946
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 4]
mov dword [ebp - 0x20], eax
test byte [ebp - 0x110], 2
je 0x4d3958
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 8]
mov dword [ebx + 4], eax
test byte [ebp - 0x110], 0x10
je 0x4d396a
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0x14]
mov dword [ebx + 8], eax
test byte [ebp - 0x110], 4
je 0x4d397f
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0xc]
mov dword [ebx + 0xa8], eax
test byte [ebp - 0x110], 8
je 0x4d3991
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x40]
test eax, eax
jne 0x4d39a2
mov dword [ebp - 0x40], 0x6bb02c
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 8]
mov edx, dword [ebp + 0x1c]
or eax, edx
and eax, 0x10
setne al
and eax, 1
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0xc]
movzx eax, word [eax + 0xc]
and eax, 0x100
setne al
and eax, 1
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 8]
and eax, 0x40000
setne al
and eax, 1
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0xc]
movzx edx, word [eax + 0x1c]
movzx ecx, word [eax + 0x1a]
imul edx, ecx
movzx ecx, word [eax + 0x18]
add eax, ecx
add eax, edx
mov dword [ebx + 0x70], eax
mov eax, dword [ebp + 0x10]
mov dword [ebx + 0x74], eax
mov eax, dword [ebp + 0x18]
mov dword [ebx + 0x94], eax
mov eax, dword [ebp + 0x14]
mov edx, dword [ebx + 0x74]
add eax, edx
mov dword [ebx + 0x78], eax
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 8]
and eax, 0x20
setne al
and eax, 1
mov dword [ebx + 0x54], eax
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 8]
and eax, 0x20000000
setne al
and eax, 1
mov dword [ebx + 0x50], eax
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 8]
and eax, 0x2000000
setne al
and eax, 1
mov dword [ebx + 0x4c], eax
mov dword [ebx + 0x6c], 0
mov eax, dword [ebp + 0x1c]
and eax, 0x80
setne al
and eax, 1
mov dword [ebx + 0x40], eax
mov eax, dword [ebp + 0x1c]
and eax, 0x100
setne al
and eax, 1
mov dword [ebx + 0x44], eax
mov eax, dword [ebp + 0x1c]
and eax, 0x400
setne al
and eax, 1
mov dword [ebx + 0x58], eax
mov eax, dword [ebp + 0x1c]
and eax, 0x10000000
setne al
and eax, 1
mov dword [ebx + 0x5c], eax
mov dword [ebx + 0x60], 0
mov dword [ebx + 0xb0], 0
mov dword [ebx + 0xac], 0
mov dword [ebx + 0xa4], 0
mov eax, dword [ebp - 0xc]
movzx eax, word [eax + 0xc]
and eax, 0x1000
setne al
and eax, 1
mov dword [ebx + 0x68], eax
mov eax, dword [ebp - 0x40]
mov dword [ebx + 0x30], eax
mov eax, dword [ebp - 0x40]
add eax, 0x100
mov dword [ebx + 0x34], eax
mov eax, dword [ebp - 0x40]
add eax, 0x340
mov dword [ebx + 0x38], eax
mov eax, dword [ebp + 0x1c]
and eax, 0x1800000
mov dword [ebp - 0x110], eax
cmp eax, 0x800000
je 0x4d3b4f
jg 0x4d3b15
cmp dword [ebp - 0x110], 0
je 0x4d3b23
jmp 0x4d3b61
cmp dword [ebp - 0x110], 0x1000000
je 0x4d3b58
jmp 0x4d3b61
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 8]
and eax, 0x1800000
je 0x4d3b46
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 8]
and eax, 0x800000
setne al
and eax, 1
mov dword [ebx + 0x64], eax
jmp 0x4d3b6b
mov dword [ebx + 0x64], 0
jmp 0x4d3b6b
mov dword [ebx + 0x64], 1
jmp 0x4d3b6b
mov dword [ebx + 0x64], 0
jmp 0x4d3b6b
mov eax, 0xffffffe9
jmp 0x4d4838
mov eax, dword [ebp + 0x1c]
and eax, 0x700000
jne 0x4d3b83
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 8]
mov dword [ebp - 0x118], eax
jmp 0x4d3b8c
mov eax, dword [ebp + 0x1c]
mov dword [ebp - 0x118], eax
mov eax, dword [ebp - 0x118]
and eax, 0x700000
mov dword [ebp - 0x114], eax
cmp eax, 0x200000
je 0x4d3c0d
jg 0x4d3bce
mov eax, dword [ebp - 0x114]
test eax, eax
je 0x4d3bfb
test eax, eax
jl 0x4d3c2e
mov eax, dword [ebp - 0x114]
cmp eax, 0x100000
je 0x4d3c04
jmp 0x4d3c2e
mov eax, dword [ebp - 0x114]
cmp eax, 0x400000
je 0x4d3c1f
jg 0x4d3bec
mov eax, dword [ebp - 0x114]
cmp eax, 0x300000
je 0x4d3c16
jmp 0x4d3c2e
mov eax, dword [ebp - 0x114]
cmp eax, 0x500000
je 0x4d3c25
jmp 0x4d3c2e
mov dword [ebp - 0x50], 0xa
jmp 0x4d3c38
mov dword [ebp - 0x50], 0xd
jmp 0x4d3c38
mov dword [ebp - 0x50], 0xa
jmp 0x4d3c38
mov dword [ebp - 0x50], 0xd0a
jmp 0x4d3c38
or dword [ebp - 0x50], 0xffffffff
jmp 0x4d3c38
mov dword [ebp - 0x50], 0xfffffffe
jmp 0x4d3c38
mov eax, 0xffffffe9
jmp 0x4d4838
cmp dword [ebp - 0x50], 0xfffffffe
jne 0x4d3c47
mov dword [ebx + 0x18], 2
jmp 0x4d3c95
cmp dword [ebp - 0x50], 0
jge 0x4d3c56
mov dword [ebx + 0x18], 1
jmp 0x4d3c95
mov dword [ebx + 0x18], 0
cmp dword [ebp - 0x50], 0xff
jle 0x4d3c88
mov dword [ebx + 0x1c], 2
mov eax, dword [ebp - 0x50]
sar eax, 8
and eax, 0xff
mov byte [ebx + 0x2c], al
mov eax, dword [ebp - 0x50]
and eax, 0xff
mov byte [ebx + 0x2d], al
jmp 0x4d3c95
mov dword [ebx + 0x1c], 1
mov eax, dword [ebp - 0x50]
mov byte [ebx + 0x2c], al
cmp dword [ebx + 0x88], 0
je 0x4d3cb3
mov eax, dword [ebp - 0xc]
test word [eax + 0xc], 0x200
je 0x4d3cb3
mov eax, 0xfffffff3
jmp 0x4d4838
mov eax, dword [ebp + 0x24]
mov dword [ebp - 0x11c], eax
mov ecx, 3
cdq
idiv ecx
mov eax, dword [ebp - 0x11c]
sub eax, edx
mov dword [ebp - 0x38], eax
add eax, eax
push eax
mov edx, 0x55555556
imul edx
pop eax
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0xc]
movzx eax, word [eax + 0x12]
mov dword [ebp - 0x120], eax
test eax, eax
jle 0x4d3d44
mov eax, dword [ebp - 0x38]
push eax
mov edx, 0x55555556
imul edx
pop eax
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x120]
cmp edx, eax
jl 0x4d3d44
mov eax, dword [ebp - 0xc]
movzx eax, word [eax + 0x12]
lea eax, [eax + eax*2]
add eax, 3
mov dword [ebp - 0x38], eax
add eax, eax
add eax, eax
push eax
call dword [0x6b8418]
pop ecx
mov dword [ebx + 0xc], eax
test eax, eax
jne 0x4d3d3b
mov eax, 0xfffffffa
jmp 0x4d4838
mov dword [ebp - 0x4c], 1
jmp 0x4d3d4a
mov eax, dword [ebp + 0x20]
mov dword [ebx + 0xc], eax
mov eax, dword [ebp - 0x38]
mov dword [ebx + 0x10], eax
mov eax, dword [ebp - 0x38]
add eax, eax
push eax
mov edx, 0x55555556
imul edx
pop eax
shr eax, 0x1f
add eax, edx
mov dword [ebx + 0x14], eax
mov dword [ebx + 0x3c], 0
or dword [ebx + 0x90], 0xffffffff
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x4d3de1
mov eax, dword [ebp - 0x38]
mov edx, dword [ebx + 0xc]
lea eax, [edx + eax*4]
mov dword [ebp - 0x124], eax
mov edx, dword [ebp - 0xc]
movzx edx, word [edx + 0x10]
add edx, edx
add edx, edx
sub eax, edx
mov dword [ebp - 0x128], eax
mov edx, dword [ebx + 0xc]
add edx, 8
cmp eax, edx
jae 0x4d3dbe
mov eax, dword [ebx + 0xc]
add eax, 8
mov dword [ebp - 0x128], eax
jmp 0x4d3dbe
mov edx, dword [ebp - 0x124]
or dword [edx], 0xffffffff
mov eax, dword [ebp - 0x124]
add eax, 0xfffffffc
mov dword [ebp - 0x124], eax
mov edx, dword [ebp - 0x128]
cmp eax, edx
jae 0x4d3db5
mov eax, dword [ebx + 0xc]
or dword [eax + 4], 0xffffffff
or dword [eax], 0xffffffff
cmp dword [ebp - 0x28], 0
jne 0x4d3e3c
mov eax, dword [ebp - 0xc]
test word [eax + 0xc], 0x10
je 0x4d3e20
mov dword [ebp - 0x30], 1
mov eax, dword [ebp - 0xc]
movzx eax, word [eax + 0x14]
mov byte [ebp - 0x21], al
mov byte [ebp - 0x11], al
mov eax, dword [ebp - 0xc]
test word [eax + 0xc], 0x20
je 0x4d3e3c
movzx eax, byte [ebp - 0x11]
mov edx, dword [ebx + 0x34]
mov al, byte [edx + eax]
mov byte [ebp - 0x21], al
jmp 0x4d3e3c
cmp dword [ebp - 0x48], 0
jne 0x4d3e3c
mov eax, dword [ebp - 0x20]
test eax, eax
je 0x4d3e3c
test byte [eax + 4], 1
je 0x4d3e3c
mov eax, dword [ebp - 0x20]
add eax, 8
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0xc]
test word [eax + 0xc], 0x40
je 0x4d3e73
mov dword [ebp - 0x3c], 1
mov eax, dword [ebp - 0xc]
movzx eax, word [eax + 0x16]
mov byte [ebp - 0x29], al
mov byte [ebp - 0x22], al
mov eax, dword [ebp - 0xc]
test word [eax + 0xc], 0x80
je 0x4d3e73
movzx eax, byte [ebp - 0x22]
mov edx, dword [ebx + 0x34]
mov al, byte [edx + eax]
mov byte [ebp - 0x29], al
mov eax, dword [ebp - 4]
mov dword [ebp - 0x128], eax
cmp dword [ebp - 0x18], 0
je 0x4d406c
mov dword [ebp - 0x12c], esi
cmp dword [ebp - 8], 0
je 0x4d3f98
jmp 0x4d3ec2
inc dword [ebp - 0x12c]
jmp 0x4d3ea6
inc dword [ebp - 0x12c]
mov eax, dword [ebp - 0x12c]
mov edx, dword [ebp - 4]
cmp eax, edx
jae 0x4d3ec2
movzx eax, byte [eax]
and eax, 0xc0
cmp eax, 0x80
je 0x4d3ea0
mov eax, dword [ebp - 0x12c]
mov edx, dword [ebx + 0x78]
cmp eax, edx
jae 0x4d3f8d
cmp dword [ebx + 0x18], 0
je 0x4d3f24
mov eax, dword [ebp - 0x12c]
mov edx, dword [ebx + 0x78]
cmp eax, edx
jae 0x4d3f0c
mov ecx, dword [ebp - 8]
push ecx
lea ecx, [ebx + 0x1c]
push ecx
push edx
mov edx, dword [ebx + 0x18]
push edx
push eax
call fcn.004d90b0
add esp, 0x14
test eax, eax
je 0x4d3f0c
mov dword [ebp - 0x134], 1
jmp 0x4d3f16
mov dword [ebp - 0x134], 0
mov eax, dword [ebp - 0x134]
mov dword [ebp - 0x130], eax
jmp 0x4d3f80
mov eax, dword [ebp - 0x12c]
mov dword [ebp - 0x13c], eax
mov edx, dword [ebx + 0x1c]
mov ecx, dword [ebx + 0x78]
sub ecx, edx
cmp eax, ecx
ja 0x4d3f6a
movzx ecx, byte [eax]
movzx eax, byte [ebx + 0x2c]
cmp ecx, eax
jne 0x4d3f6a
cmp edx, 1
je 0x4d3f5e
mov eax, dword [ebp - 0x13c]
movzx eax, byte [eax + 1]
movzx edx, byte [ebx + 0x2d]
cmp eax, edx
jne 0x4d3f6a
mov dword [ebp - 0x138], 1
jmp 0x4d3f74
mov dword [ebp - 0x138], 0
mov eax, dword [ebp - 0x138]
mov dword [ebp - 0x130], eax
cmp dword [ebp - 0x130], 0
je 0x4d3e98
jmp 0x4d4063
inc dword [ebp - 0x12c]
mov eax, dword [ebp - 0x12c]
mov edx, dword [ebx + 0x78]
cmp eax, edx
jae 0x4d4063
cmp dword [ebx + 0x18], 0
je 0x4d3ffa
mov eax, dword [ebp - 0x12c]
mov edx, dword [ebx + 0x78]
cmp eax, edx
jae 0x4d3fe2
mov ecx, dword [ebp - 8]
push ecx
lea ecx, [ebx + 0x1c]
push ecx
push edx
mov edx, dword [ebx + 0x18]
push edx
push eax
call fcn.004d90b0
add esp, 0x14
test eax, eax
je 0x4d3fe2
mov dword [ebp - 0x134], 1
jmp 0x4d3fec
mov dword [ebp - 0x134], 0
mov eax, dword [ebp - 0x134]
mov dword [ebp - 0x130], eax
jmp 0x4d4056
mov eax, dword [ebp - 0x12c]
mov dword [ebp - 0x13c], eax
mov edx, dword [ebx + 0x1c]
mov ecx, dword [ebx + 0x78]
sub ecx, edx
cmp eax, ecx
ja 0x4d4040
movzx ecx, byte [eax]
movzx eax, byte [ebx + 0x2c]
cmp ecx, eax
jne 0x4d4040
cmp edx, 1
je 0x4d4034
mov eax, dword [ebp - 0x13c]
movzx eax, byte [eax + 1]
movzx edx, byte [ebx + 0x2d]
cmp eax, edx
jne 0x4d4040
mov dword [ebp - 0x138], 1
jmp 0x4d404a
mov dword [ebp - 0x138], 0
mov eax, dword [ebp - 0x138]
mov dword [ebp - 0x130], eax
cmp dword [ebp - 0x130], 0
je 0x4d3f92
mov eax, dword [ebp - 0x12c]
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x1c]
mov edx, dword [ebp - 0xc]
or eax, dword [edx + 8]
and eax, 0x4000000
jne 0x4d4331
cmp dword [ebp - 0x30], 0
je 0x4d40db
movzx eax, byte [ebp - 0x11]
movzx edx, byte [ebp - 0x21]
cmp eax, edx
je 0x4d40c4
jmp 0x4d4095
inc esi
mov eax, dword [ebp - 4]
cmp esi, eax
jae 0x4d40be
mov al, byte [esi]
mov byte [ebp - 0x129], al
movzx eax, al
movzx edx, byte [ebp - 0x11]
cmp eax, edx
je 0x4d40be
movzx eax, byte [ebp - 0x129]
movzx edx, byte [ebp - 0x21]
cmp eax, edx
jne 0x4d4094
jmp 0x4d4331
inc esi
mov eax, dword [ebp - 4]
cmp esi, eax
jae 0x4d40d6
movzx eax, byte [esi]
movzx edx, byte [ebp - 0x11]
cmp eax, edx
jne 0x4d40c3
jmp 0x4d4331
cmp dword [ebp - 0x48], 0
je 0x4d42d0
mov eax, dword [ebp + 0x18]
mov edx, dword [ebx + 0x74]
add eax, edx
cmp esi, eax
jbe 0x4d4331
cmp dword [ebp - 8], 0
je 0x4d41de
jmp 0x4d411b
inc esi
jmp 0x4d4105
inc esi
mov eax, dword [ebp - 4]
cmp esi, eax
jae 0x4d411b
movzx eax, byte [esi]
and eax, 0xc0
cmp eax, 0x80
je 0x4d4104
mov eax, dword [ebp - 4]
cmp esi, eax
jae 0x4d41d8
cmp dword [ebx + 0x18], 0
je 0x4d4171
mov eax, dword [ebx + 0x74]
cmp esi, eax
jbe 0x4d4159
mov edx, dword [ebp - 8]
push edx
lea edx, [ebx + 0x1c]
push edx
push eax
mov eax, dword [ebx + 0x18]
push eax
push esi
call fcn.004d92f0
add esp, 0x14
test eax, eax
je 0x4d4159
mov dword [ebp - 0x130], 1
jmp 0x4d4163
mov dword [ebp - 0x130], 0
mov eax, dword [ebp - 0x130]
mov dword [ebp - 0x12c], eax
jmp 0x4d41cb
mov eax, dword [ebx + 0x1c]
mov edx, dword [ebx + 0x74]
add edx, eax
cmp esi, edx
jb 0x4d41b5
mov edx, esi
sub edx, eax
mov dword [ebp - 0x138], edx
movzx ecx, byte [edx]
movzx edx, byte [ebx + 0x2c]
cmp ecx, edx
jne 0x4d41b5
cmp eax, 1
je 0x4d41a9
mov eax, dword [ebp - 0x138]
movzx eax, byte [eax + 1]
movzx edx, byte [ebx + 0x2d]
cmp eax, edx
jne 0x4d41b5
mov dword [ebp - 0x134], 1
jmp 0x4d41bf
mov dword [ebp - 0x134], 0
mov eax, dword [ebp - 0x134]
mov dword [ebp - 0x12c], eax
cmp dword [ebp - 0x12c], 0
je 0x4d4101
jmp 0x4d429b
inc esi
mov eax, dword [ebp - 4]
cmp esi, eax
jae 0x4d429b
cmp dword [ebx + 0x18], 0
je 0x4d4234
mov eax, dword [ebx + 0x74]
cmp esi, eax
jbe 0x4d421c
mov edx, dword [ebp - 8]
push edx
lea edx, [ebx + 0x1c]
push edx
push eax
mov eax, dword [ebx + 0x18]
push eax
push esi
call fcn.004d92f0
add esp, 0x14
test eax, eax
je 0x4d421c
mov dword [ebp - 0x130], 1
jmp 0x4d4226
mov dword [ebp - 0x130], 0
mov eax, dword [ebp - 0x130]
mov dword [ebp - 0x12c], eax
jmp 0x4d428e
mov eax, dword [ebx + 0x1c]
mov edx, dword [ebx + 0x74]
add edx, eax
cmp esi, edx
jb 0x4d4278
mov edx, esi
sub edx, eax
mov dword [ebp - 0x138], edx
movzx ecx, byte [edx]
movzx edx, byte [ebx + 0x2c]
cmp ecx, edx
jne 0x4d4278
cmp eax, 1
je 0x4d426c
mov eax, dword [ebp - 0x138]
movzx eax, byte [eax + 1]
movzx edx, byte [ebx + 0x2d]
cmp eax, edx
jne 0x4d4278
mov dword [ebp - 0x134], 1
jmp 0x4d4282
mov dword [ebp - 0x134], 0
mov eax, dword [ebp - 0x134]
mov dword [ebp - 0x12c], eax
cmp dword [ebp - 0x12c], 0
je 0x4d41dd
cmp byte [esi - 1], 0xd
jne 0x4d4331
mov eax, dword [ebx + 0x18]
cmp eax, 1
je 0x4d42b6
cmp eax, 2
jne 0x4d4331
mov eax, dword [ebp - 4]
cmp esi, eax
jae 0x4d4331
cmp byte [esi], 0xa
jne 0x4d4331
inc esi
jmp 0x4d4331
mov eax, dword [ebp - 0x34]
test eax, eax
je 0x4d4331
jmp 0x4d432a
movzx eax, byte [esi]
mov dword [ebp - 0x12c], eax
mov edx, eax
shr edx, 3
mov ecx, dword [ebp - 0x34]
movzx edx, byte [ecx + edx]
mov ecx, 1
mov dword [ebp - 0x130], ecx
and eax, 7
mov ecx, eax
mov eax, dword [ebp - 0x130]
shl eax, cl
and edx, eax
jne 0x4d4331
inc esi
cmp dword [ebp - 8], 0
je 0x4d432a
jmp 0x4d4314
inc esi
mov eax, dword [ebp - 4]
cmp esi, eax
jae 0x4d432a
movzx eax, byte [esi]
and eax, 0xc0
cmp eax, 0x80
je 0x4d4313
mov eax, dword [ebp - 4]
cmp esi, eax
jb 0x4d42d9
mov eax, dword [ebp - 0x128]
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x1c]
mov edx, dword [ebp - 0xc]
or eax, dword [edx + 8]
and eax, 0x4000000
jne 0x4d4457
cmp dword [ebx + 0x88], 0
jne 0x4d4457
mov eax, dword [ebp - 0x20]
test eax, eax
je 0x4d437e
test byte [eax + 4], 2
je 0x4d437e
mov edx, dword [ebp - 4]
sub edx, esi
cmp edx, dword [eax + 0x28]
jae 0x4d437e
mov dword [ebp - 0x10], 0
jmp case.0x4d5858.23
cmp dword [ebp - 0x3c], 0
je 0x4d4457
mov eax, dword [ebp - 4]
sub eax, esi
cmp eax, 0x3e8
jge 0x4d4457
cmp dword [ebp - 0x30], 0
setne al
and eax, 1
add eax, esi
mov dword [ebp - 0x12c], eax
mov edx, dword [ebp - 0x44]
cmp eax, edx
jbe 0x4d4457
movzx eax, byte [ebp - 0x22]
movzx edx, byte [ebp - 0x29]
cmp eax, edx
je 0x4d4428
jmp 0x4d43f7
mov eax, dword [ebp - 0x12c]
lea edx, [eax + 1]
mov dword [ebp - 0x12c], edx
movzx eax, byte [eax]
mov dword [ebp - 0x130], eax
movzx edx, byte [ebp - 0x22]
cmp eax, edx
je 0x4d43ef
movzx edx, byte [ebp - 0x29]
cmp eax, edx
jne 0x4d43f7
dec dword [ebp - 0x12c]
jmp 0x4d4435
mov eax, dword [ebp - 0x12c]
mov edx, dword [ebp - 4]
cmp eax, edx
jb 0x4d43c7
jmp 0x4d4435
mov eax, dword [ebp - 0x12c]
lea edx, [eax + 1]
mov dword [ebp - 0x12c], edx
movzx eax, byte [eax]
movzx edx, byte [ebp - 0x22]
cmp eax, edx
jne 0x4d4428
dec dword [ebp - 0x12c]
jmp 0x4d4435
mov eax, dword [ebp - 0x12c]
mov edx, dword [ebp - 4]
cmp eax, edx
jb 0x4d4406
mov eax, dword [ebp - 0x12c]
mov edx, dword [ebp - 4]
cmp eax, edx
jb 0x4d444e
mov dword [ebp - 0x10], 0
jmp case.0x4d5858.23
mov eax, dword [ebp - 0x12c]
mov dword [ebp - 0x44], eax
mov dword [ebx + 0x7c], esi
mov dword [ebx + 0x84], esi
mov dword [ebx], 0
mov dword [ebx + 0x98], 0
mov dword [ebx + 0x8c], 0
push 0
push 0
push ebx
push 2
push esi
mov eax, dword [ebx + 0x70]
push eax
push esi
call fcn.004c7180
add esp, 0x1c
mov dword [ebp - 0x10], eax
cmp dword [ebx + 0x60], 0
je 0x4d44a8
mov eax, dword [ebp - 0x1c]
test eax, eax
jne 0x4d44a8
mov eax, dword [ebx + 0x84]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x10]
cmp eax, 0xfffffc1a
jl case.0x4d5858.23
cmp eax, 0xfffffc20
jg 0x4d44c4
jmp dword [eax*4 + 0x5fa0a4]
cmp dword [ebp - 0x10], 0
je case.0x4d5858.25
jmp case.0x4d5858.23
mov dword [ebx + 0x6c], 0
lea eax, [esi + 1]
mov dword [ebp - 0x124], eax
cmp dword [ebp - 8], 0
je 0x4d4535
jmp 0x4d450b
inc dword [ebp - 0x124]
mov eax, dword [ebp - 0x124]
mov edx, dword [ebp - 4]
cmp eax, edx
jae 0x4d4527
movzx eax, byte [eax]
and eax, 0xc0
cmp eax, 0x80
je 0x4d4505
jmp 0x4d4535
mov dword [ebp - 0x10], 0
cmp dword [ebp - 0x18], 0
je 0x4d45e8
cmp dword [ebx + 0x18], 0
je 0x4d4591
mov eax, dword [ebx + 0x78]
cmp esi, eax
jae 0x4d4579
mov edx, dword [ebp - 8]
push edx
lea edx, [ebx + 0x1c]
push edx
push eax
mov eax, dword [ebx + 0x18]
push eax
push esi
call fcn.004d90b0
add esp, 0x14
test eax, eax
je 0x4d4579
mov dword [ebp - 0x130], 1
jmp 0x4d4583
mov dword [ebp - 0x130], 0
mov eax, dword [ebp - 0x130]
mov dword [ebp - 0x12c], eax
jmp 0x4d45db
mov eax, dword [ebx + 0x1c]
mov edx, dword [ebx + 0x78]
sub edx, eax
cmp esi, edx
ja 0x4d45c5
movzx edx, byte [esi]
movzx ecx, byte [ebx + 0x2c]
cmp edx, ecx
jne 0x4d45c5
cmp eax, 1
je 0x4d45b9
movzx eax, byte [esi + 1]
movzx edx, byte [ebx + 0x2d]
cmp eax, edx
jne 0x4d45c5
mov dword [ebp - 0x134], 1
jmp 0x4d45cf
mov dword [ebp - 0x134], 0
mov eax, dword [ebp - 0x134]
mov dword [ebp - 0x12c], eax
cmp dword [ebp - 0x12c], 0
jne case.0x4d5858.23
mov esi, dword [ebp - 0x124]
cmp dword [ebp - 0x28], 0
jne 0x4d45fb
mov eax, dword [ebp - 4]
cmp esi, eax
jbe 0x4d45fd
jmp case.0x4d5858.23
mov edx, dword [ebp + 0x18]
mov ecx, dword [ebp + 0x10]
add edx, ecx
cmp esi, edx
jbe 0x4d463a
cmp byte [esi - 1], 0xd
jne 0x4d463a
mov edx, dword [ebp - 4]
cmp esi, edx
jae 0x4d463a
cmp byte [esi], 0xa
jne 0x4d463a
mov eax, dword [ebp - 0xc]
test word [eax + 0xc], 0x800
jne 0x4d463a
mov eax, dword [ebx + 0x18]
cmp eax, 1
je 0x4d4639
cmp eax, 2
je 0x4d4639
cmp dword [ebx + 0x1c], 2
jne 0x4d463a
inc esi
mov dword [ebx + 0xac], 0
jmp 0x4d3e73
mov eax, dword [ebp - 0x10]
cmp eax, 1
je 0x4d465c
cmp eax, 0xfffffc19
jne 0x4d47ba
cmp dword [ebp - 0x4c], 0
je 0x4d46a6
cmp dword [ebp - 0x54], 4
jl 0x4d4689
mov eax, dword [ebp - 0x54]
sub eax, 2
add eax, eax
add eax, eax
push eax
mov eax, dword [ebx + 0xc]
add eax, 8
push eax
mov eax, dword [ebp + 0x20]
add eax, 8
push eax
call fcn.0052eb80
add esp, 0xc
mov eax, dword [ebp - 0x54]
cmp dword [ebx + 0x8c], eax
jle 0x4d469b
mov dword [ebx + 0x3c], 1
mov eax, dword [ebx + 0xc]
push eax
call dword [0x6b841c]
pop ecx
cmp dword [ebx + 0x3c], 0
je 0x4d46c3
mov eax, dword [ebp - 0x54]
cmp dword [ebx + 0x8c], eax
jl 0x4d46c3
mov dword [ebp - 0x124], 0
jmp 0x4d46d4
mov eax, dword [ebx + 0x8c]
cdq
sub eax, edx
sar eax, 1
mov dword [ebp - 0x124], eax
mov eax, dword [ebp - 0x124]
mov dword [ebp - 0x10], eax
mov eax, dword [ebx + 0x8c]
cdq
sub eax, edx
sar eax, 1
mov edx, dword [ebp - 0xc]
movzx edx, word [edx + 0x10]
cmp eax, edx
jg 0x4d476b
mov eax, dword [ebp + 0x20]
test eax, eax
je 0x4d476b
mov eax, dword [ebp - 0xc]
movzx eax, word [eax + 0x10]
lea eax, [eax + eax + 2]
mov dword [ebp - 0x130], eax
mov eax, dword [ebp + 0x24]
cmp dword [ebp - 0x130], eax
jle 0x4d4723
mov eax, dword [ebp + 0x24]
mov dword [ebp - 0x130], eax
mov eax, dword [ebx + 0x8c]
mov edx, dword [ebp + 0x20]
lea eax, [edx + eax*4]
mov dword [ebp - 0x128], eax
mov eax, dword [ebp - 0x130]
mov edx, dword [ebp + 0x20]
lea eax, [edx + eax*4]
mov dword [ebp - 0x12c], eax
jmp 0x4d475b
mov eax, dword [ebp - 0x128]
lea edx, [eax + 4]
mov dword [ebp - 0x128], edx
or dword [eax], 0xffffffff
mov eax, dword [ebp - 0x128]
mov edx, dword [ebp - 0x12c]
cmp eax, edx
jb 0x4d4749
cmp dword [ebp + 0x24], 2
jge 0x4d477a
mov dword [ebp - 0x10], 0
jmp 0x4d4798
mov edx, dword [ebp + 0x20]
mov eax, dword [ebx + 0x7c]
mov ecx, dword [ebx + 0x74]
sub eax, ecx
mov dword [edx], eax
mov edx, dword [ebp + 0x20]
mov eax, dword [ebx + 0x80]
mov ecx, dword [ebx + 0x74]
sub eax, ecx
mov dword [edx + 4], eax
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x4d47b2
test byte [eax], 0x20
je 0x4d47b2
mov eax, dword [ebp + 0xc]
mov edx, dword [eax + 0x18]
mov eax, dword [ebx + 0xac]
mov dword [edx], eax
mov eax, dword [ebp - 0x10]
jmp 0x4d4838
cmp dword [ebp - 0x4c], 0
je 0x4d47cb
mov eax, dword [ebx + 0xc]
push eax
call dword [0x6b841c]
pop ecx
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x4d47dc
cmp eax, 0xfffffff4
je 0x4d47dc
mov eax, dword [ebp - 0x10]
jmp 0x4d4838
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x4d4817
mov dword [ebx + 0xac], 0
cmp dword [ebp + 0x24], 1
jle 0x4d480e
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp + 0x10]
sub eax, ecx
mov dword [edx], eax
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp - 4]
mov ecx, dword [ebp + 0x10]
sub eax, ecx
mov dword [edx + 4], eax
mov dword [ebp - 0x10], 0xfffffff4
jmp 0x4d481b
or dword [ebp - 0x10], 0xffffffff
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x4d4835
test byte [eax], 0x20
je 0x4d4835
mov eax, dword [ebp + 0xc]
mov edx, dword [eax + 0x18]
mov eax, dword [ebx + 0xb0]
mov dword [edx], eax
mov eax, dword [ebp - 0x10]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret