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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffff004
push eax
add esp, 0xfffffe28
xor eax, eax
push ebx
push esi
push edi
mov dword [ebp - 4], 1
mov dword [ebp - 0x18], 0xffffffff
mov dword [ebp - 0x1c], 0xffffffff
mov dword [ebp - 0x20], eax
xor eax, eax
mov dword [ebp - 0x28], eax
xor ebx, ebx
mov eax, dword [ebp + 8]
lea esi, [ebp - 0xe8]
mov dword [ebp - 0x38], eax
cmp dword [ebp + 0x14], 0
jne 0x4d3de4
cmp dword [ebp + 0x10], 0
je 0x4d3ddd
mov edx, dword [ebp + 0x10]
mov dword [edx], 0x63
xor eax, eax
jmp 0x4d4937
mov edx, dword [ebp + 0x14]
xor ecx, ecx
mov dword [edx], ecx
cmp dword [ebp + 0x10], 0
je 0x4d3df8
mov eax, dword [ebp + 0x10]
xor edx, edx
mov dword [eax], edx
cmp dword [ebp + 0x18], 0
jne 0x4d3e0a
mov dword [ebp - 0x20], 0x10
jmp 0x4d47f6
mov ecx, dword [ebp + 0x18]
xor eax, eax
mov dword [ecx], eax
cmp dword [ebp + 0x1c], 0
jne 0x4d3e1e
mov dword [ebp + 0x1c], 0x5b8998
mov edx, dword [ebp + 0x1c]
mov dword [esi], edx
mov ecx, dword [ebp + 0x1c]
add ecx, 0x100
mov dword [esi + 4], ecx
mov eax, dword [ebp + 0x1c]
add eax, 0x200
mov dword [esi + 8], eax
mov edx, dword [ebp + 0x1c]
add edx, 0x340
mov dword [esi + 0xc], edx
test dword [ebp + 0xc], 0xd8008580
je 0x4d3e5b
mov dword [ebp - 0x20], 0x11
jmp 0x4d47eb
test byte [ebp + 0xe], 1
je 0x4d3e68
mov dword [ebp - 0x28], 1
xor ecx, ecx
mov dword [esi + 0x64], ecx
jmp 0x4d41b9
xor edi, edi
xor eax, eax
mov dword [ebp - 0x3c], eax
push 5
push str.UTF8_
mov edx, dword [ebp - 0x38]
add edx, ebx
add edx, 2
push edx
call fcn.004f3360
add esp, 0xc
test eax, eax
jne 0x4d3ea9
add ebx, 7
or dword [ebp + 0xc], 0x800
jmp 0x4d41b9
push 4
push str.UTF_
mov ecx, dword [ebp - 0x38]
add ecx, ebx
add ecx, 2
push ecx
call fcn.004f3360
add esp, 0xc
test eax, eax
jne 0x4d3ed9
add ebx, 6
or dword [ebp + 0xc], 0x800
jmp 0x4d41b9
push 4
push str.UCP_
mov eax, dword [ebp - 0x38]
add eax, ebx
add eax, 2
push eax
call fcn.004f3360
add esp, 0xc
test eax, eax
jne 0x4d3f09
add ebx, 6
or dword [ebp + 0xc], 0x20000000
jmp 0x4d41b9
push 0x10
push str.NO_AUTO_POSSESS_
mov edx, dword [ebp - 0x38]
add edx, ebx
add edx, 2
push edx
call fcn.004f3360
add esp, 0xc
test eax, eax
jne 0x4d3f39
add ebx, 0x12
or dword [ebp + 0xc], 0x20000
jmp 0x4d41b9
push 0xd
push str.NO_START_OPT_
mov ecx, dword [ebp - 0x38]
add ecx, ebx
add ecx, 2
push ecx
call fcn.004f3360
add esp, 0xc
test eax, eax
jne 0x4d3f69
add ebx, 0xf
or dword [ebp + 0xc], 0x4000000
jmp 0x4d41b9
push 0xc
push str.LIMIT_MATCH
mov eax, dword [ebp - 0x38]
add eax, ebx
add eax, 2
push eax
call fcn.004f3360
add esp, 0xc
test eax, eax
jne 0x4d3ff5
xor edx, edx
lea edi, [ebx + 0xe]
mov dword [ebp - 0x40], edx
jmp 0x4d3fb1
cmp dword [ebp - 0x40], 0x19999998
ja 0x4d3fc4
mov ecx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x38]
add ecx, ecx
xor edx, edx
mov dl, byte [eax + edi]
lea ecx, [ecx + ecx*4]
add edx, ecx
sub edx, 0x30
inc edi
mov dword [ebp - 0x40], edx
mov eax, dword [ebp - 0x38]
xor edx, edx
mov dl, byte [eax + edi]
push edx
call fcn.004f7600
pop ecx
test eax, eax
jne 0x4d3f8f
mov ecx, edi
inc edi
mov eax, dword [ebp - 0x38]
cmp byte [eax + ecx], 0x29
jne 0x4d41d0
mov edx, dword [ebp - 0x40]
cmp edx, dword [ebp - 0x18]
jae 0x4d3fe9
mov ecx, dword [ebp - 0x40]
mov dword [ebp - 0x18], ecx
or dword [esi + 0x64], 0x2000
mov ebx, edi
jmp 0x4d41b9
push 0x10
push str.LIMIT_RECURSION
mov eax, dword [ebp - 0x38]
add eax, ebx
add eax, 2
push eax
call fcn.004f3360
add esp, 0xc
test eax, eax
jne 0x4d407c
xor edx, edx
lea edi, [ebx + 0x12]
mov dword [ebp - 0x44], edx
jmp 0x4d403d
cmp dword [ebp - 0x44], 0x19999998
ja 0x4d4050
mov ecx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x38]
add ecx, ecx
xor edx, edx
mov dl, byte [eax + edi]
lea ecx, [ecx + ecx*4]
add edx, ecx
sub edx, 0x30
inc edi
mov dword [ebp - 0x44], edx
mov eax, dword [ebp - 0x38]
xor edx, edx
mov dl, byte [eax + edi]
push edx
call fcn.004f7600
pop ecx
test eax, eax
jne 0x4d401b
mov ecx, edi
inc edi
mov eax, dword [ebp - 0x38]
cmp byte [eax + ecx], 0x29
jne 0x4d41d0
mov edx, dword [ebp - 0x44]
cmp edx, dword [ebp - 0x1c]
jae 0x4d4075
mov ecx, dword [ebp - 0x44]
mov dword [ebp - 0x1c], ecx
or dword [esi + 0x64], 0x4000
mov ebx, edi
jmp 0x4d41b9
push 3
push 0x5ba29f
mov eax, dword [ebp - 0x38]
add eax, ebx
add eax, 2
push eax
call fcn.004f3360
add esp, 0xc
test eax, eax
jne 0x4d40a5
add ebx, 5
mov edi, 0x100000
jmp 0x4d4191
push 3
push 0x5ba2a3
mov eax, dword [ebp - 0x38]
add eax, ebx
add eax, 2
push eax
call fcn.004f3360
add esp, 0xc
test eax, eax
jne 0x4d40ce
add ebx, 5
mov edi, 0x200000
jmp 0x4d4191
push 5
push str.CRLF_
mov eax, dword [ebp - 0x38]
add eax, ebx
add eax, 2
push eax
call fcn.004f3360
add esp, 0xc
test eax, eax
jne 0x4d40f7
add ebx, 7
mov edi, 0x300000
jmp 0x4d4191
push 4
push str.ANY_
mov eax, dword [ebp - 0x38]
add eax, ebx
add eax, 2
push eax
call fcn.004f3360
add esp, 0xc
test eax, eax
jne 0x4d411d
add ebx, 6
mov edi, 0x400000
jmp 0x4d4191
push 8
push str.ANYCRLF_
mov eax, dword [ebp - 0x38]
add eax, ebx
add eax, 2
push eax
call fcn.004f3360
add esp, 0xc
test eax, eax
jne 0x4d4143
add ebx, 0xa
mov edi, 0x500000
jmp 0x4d4191
push 0xc
push str.BSR_ANYCRLF_
mov eax, dword [ebp - 0x38]
add eax, ebx
add eax, 2
push eax
call fcn.004f3360
add esp, 0xc
test eax, eax
jne 0x4d416b
mov dword [ebp - 0x3c], 0x800000
add ebx, 0xe
jmp 0x4d4191
push 0xc
push str.BSR_UNICODE_
mov edx, dword [ebp - 0x38]
add edx, ebx
add edx, 2
push edx
call fcn.004f3360
add esp, 0xc
test eax, eax
jne 0x4d4191
mov dword [ebp - 0x3c], 0x1000000
add ebx, 0xe
test edi, edi
je 0x4d41a5
mov ecx, dword [ebp + 0xc]
and ecx, 0xff8fffff
or edi, ecx
mov dword [ebp + 0xc], edi
jmp 0x4d41b9
cmp dword [ebp - 0x3c], 0
je 0x4d41d0
mov eax, dword [ebp + 0xc]
and eax, 0xfe7fffff
or eax, dword [ebp - 0x3c]
mov dword [ebp + 0xc], eax
mov edx, dword [ebp - 0x38]
cmp byte [edx + ebx], 0x28
jne 0x4d41d0
mov ecx, dword [ebp - 0x38]
cmp byte [ecx + ebx + 1], 0x2a
je 0x4d3e72
test byte [ebp + 0xd], 8
setne al
and eax, 1
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 0
je 0x4d41f5
cmp dword [ebp - 0x28], 0
je 0x4d41f5
mov dword [ebp - 0x20], 0x4e
jmp 0x4d47f6
cmp dword [ebp - 0x24], 0
je 0x4d4226
test byte [ebp + 0xd], 0x20
jne 0x4d4226
mov edx, dword [ebp + 0x18]
push edx
push 0xffffffffffffffff
mov ecx, dword [ebp + 8]
push ecx
call fcn.004e6b94
add esp, 0xc
mov dword [ebp - 0x20], eax
test eax, eax
je 0x4d4226
mov dword [ebp - 0x20], 0x2c
jmp 0x4d47f6
mov edx, dword [ebp + 0xc]
and edx, 0x1800000
cmp edx, 0x1800000
jne 0x4d4243
mov dword [ebp - 0x20], 0x38
jmp 0x4d47eb
mov ecx, dword [ebp + 0xc]
and ecx, 0x700000
cmp ecx, 0x300000
jg 0x4d426d
je 0x4d4294
sub ecx, 1
jb 0x4d427f
sub ecx, 0xfffff
je 0x4d4286
sub ecx, 0x100000
je 0x4d428d
jmp 0x4d42a7
sub ecx, 0x400000
je 0x4d429b
sub ecx, 0x100000
je 0x4d42a0
jmp 0x4d42a7
mov eax, 0xa
jmp 0x4d42b3
mov eax, 0xd
jmp 0x4d42b3
mov eax, 0xa
jmp 0x4d42b3
mov eax, 0xd0a
jmp 0x4d42b3
or eax, 0xffffffff
jmp 0x4d42b3
mov eax, 0xfffffffe
jmp 0x4d42b3
mov dword [ebp - 0x20], 0x38
jmp 0x4d47eb
cmp eax, 0xfffffffe
jne 0x4d42c1
mov dword [esi + 0x7c], 2
jmp 0x4d430c
test eax, eax
jge 0x4d42ce
mov dword [esi + 0x7c], 1
jmp 0x4d430c
xor edx, edx
cmp eax, 0xff
mov dword [esi + 0x7c], edx
jle 0x4d42fc
mov ecx, eax
sar ecx, 8
mov dword [esi + 0x80], 2
and cl, 0xff
and al, 0xff
mov byte [esi + 0x84], cl
mov byte [esi + 0x85], al
jmp 0x4d430c
mov dword [esi + 0x80], 1
mov byte [esi + 0x84], al
xor eax, eax
xor edx, edx
mov dword [esi + 0x4c], eax
mov dword [esi + 0x50], edx
xor ecx, ecx
xor eax, eax
mov dword [esi + 0x44], ecx
mov dword [esi + 0x40], ecx
mov dword [esi + 0x30], eax
xor edx, edx
mov dword [esi + 0x34], edx
xor eax, eax
mov dword [esi + 0x2c], eax
xor edx, edx
mov dword [esi + 0x78], edx
xor ecx, ecx
mov dword [esi + 0x54], ecx
lea eax, [ebp - 0x10e8]
mov dword [esi + 0x14], eax
lea edx, [ebp - 0x10e8]
mov dword [esi + 0x20], edx
lea ecx, [ebp - 0x10e8]
mov dword [esi + 0x10], ecx
lea eax, [ebp - 0x11d8]
mov dword [esi + 0x3c], 0x1000
mov dword [esi + 0x28], eax
mov dword [esi + 0x38], 0x14
mov edx, dword [ebp + 8]
mov dword [esi + 0x18], edx
mov ecx, dword [ebp + 8]
push ecx
call fcn.004f3294
add eax, dword [ebp + 8]
pop ecx
mov dword [esi + 0x1c], eax
xor eax, eax
mov dword [esi + 0x68], eax
xor edx, edx
mov dword [esi + 0x58], edx
xor ecx, ecx
mov dword [esi + 0x5c], ecx
xor eax, eax
mov dword [esi + 0x48], eax
xor ecx, ecx
mov edx, dword [ebp + 0xc]
lea eax, [ebp - 0x10e8]
mov dword [esi + 0x60], edx
mov dword [esi + 0x24], ecx
add dword [ebp - 0x38], ebx
mov dword [ebp - 0x30], eax
mov edx, dword [ebp - 0x30]
lea ecx, [ebp - 4]
lea eax, [ebp - 0xc]
mov byte [edx], 0x83
push ecx
push esi
push 0
push eax
lea edx, [ebp - 0x14]
lea ecx, [ebp - 8]
push edx
push ecx
lea eax, [ebp - 0x10]
lea edx, [ebp - 0x20]
push eax
push 0
push 0
push 0
push 0
push edx
lea ecx, [ebp - 0x38]
lea eax, [ebp - 0x30]
push ecx
push eax
mov edx, dword [esi + 0x60]
push edx
call fcn.004d33b8
add esp, 0x3c
cmp dword [ebp - 0x20], 0
jne 0x4d47eb
cmp dword [ebp - 4], 0x10000
jle 0x4d4406
mov dword [ebp - 0x20], 0x14
jmp 0x4d47eb
cmp dword [esi + 0x78], 0
je 0x4d441d
cmp dword [esi + 0x54], 0
jbe 0x4d441d
mov ecx, dword [esi + 0x54]
add ecx, ecx
add ecx, dword [ebp - 4]
mov dword [ebp - 4], ecx
mov eax, dword [esi + 0x30]
imul dword [esi + 0x34]
add eax, dword [ebp - 4]
add eax, 0x38
mov dword [ebp - 0x2c], eax
mov edx, dword [ebp - 0x2c]
push edx
call dword [0x5ba2f4]
pop ecx
mov edi, eax
test edi, edi
jne 0x4d4449
mov dword [ebp - 0x20], 0x15
jmp 0x4d47eb
mov dword [edi], 0x50435245
mov eax, dword [ebp - 0x2c]
mov dword [edi + 4], eax
mov edx, dword [esi + 0x60]
mov dword [edi + 8], edx
mov ecx, dword [esi + 0x64]
mov dword [edi + 0xc], ecx
mov eax, dword [ebp - 0x18]
mov dword [edi + 0x10], eax
mov edx, dword [ebp - 0x1c]
mov dword [edi + 0x14], edx
mov edx, 0x5b8998
mov word [edi + 0x18], 0
mov word [edi + 0x1a], 0
mov word [edi + 0x22], 0x38
mov cx, word [esi + 0x34]
mov word [edi + 0x24], cx
mov ax, word [esi + 0x30]
mov word [edi + 0x26], ax
mov word [edi + 0x28], 0
cmp edx, dword [ebp + 0x1c]
jne 0x4d44a3
xor ecx, ecx
jmp 0x4d44a6
mov ecx, dword [ebp + 0x1c]
mov dword [edi + 0x30], ecx
xor eax, eax
xor edx, edx
mov dword [edi + 0x34], eax
mov word [edi + 0x2e], dx
xor ecx, ecx
mov word [edi + 0x2c], dx
mov word [edi + 0x2a], dx
xor edx, edx
mov eax, dword [esi + 0x40]
mov dword [esi + 0x44], eax
mov dword [esi + 0x58], ecx
xor eax, eax
xor ecx, ecx
mov dword [esi + 0x5c], eax
mov dword [esi + 0x40], edx
mov dword [esi + 0x48], ecx
movzx eax, word [edi + 0x22]
add eax, edi
mov dword [esi + 0x2c], eax
movzx ecx, word [edi + 0x26]
movzx edx, word [edi + 0x24]
imul edx, ecx
add edx, dword [esi + 0x2c]
xor ecx, ecx
mov dword [ebp - 0x34], edx
mov eax, dword [ebp - 0x34]
mov dword [esi + 0x14], eax
xor eax, eax
mov edx, dword [esi + 0x10]
mov dword [esi + 0x20], edx
mov dword [esi + 0x68], ecx
mov dword [esi + 0x6c], eax
xor edx, edx
xor ecx, ecx
mov dword [esi + 0x70], edx
xor eax, eax
mov dword [esi + 0x74], ecx
mov dword [esi + 0x24], eax
cmp dword [esi + 0x30], 0
jle 0x4d456d
mov edx, dword [esi + 0x30]
xor eax, eax
mov dword [ebp - 0x48], edx
mov ecx, dword [esi + 0x28]
mov dword [ebp - 0x4c], ecx
mov dword [esi + 0x30], eax
cmp dword [ebp - 0x48], 0
jle 0x4d455c
mov edx, dword [ebp - 0x4c]
mov ecx, dword [edx + 8]
push ecx
mov eax, dword [ebp - 0x4c]
mov edx, dword [eax + 4]
push edx
mov ecx, dword [ebp - 0x4c]
mov eax, dword [ecx]
push eax
push esi
call fcn.004d3cd0
add esp, 0x10
dec dword [ebp - 0x48]
add dword [ebp - 0x4c], 0xc
cmp dword [ebp - 0x48], 0
jg 0x4d4532
cmp dword [esi + 0x38], 0x14
jle 0x4d456d
mov edx, dword [esi + 0x28]
push edx
call dword [0x5ba2f8]
pop ecx
add ebx, dword [ebp + 8]
lea edx, [ebp - 0xc]
mov dword [ebp - 0x38], ebx
mov ecx, dword [ebp - 0x34]
mov dword [ebp - 0x30], ecx
lea ecx, [ebp - 0x14]
mov eax, dword [ebp - 0x30]
mov byte [eax], 0x83
push 0
push esi
push 0
push edx
push ecx
lea eax, [ebp - 8]
lea edx, [ebp - 0x10]
push eax
push edx
push 0
push 0
push 0
lea ecx, [ebp - 0x20]
push 0
push ecx
lea eax, [ebp - 0x38]
lea edx, [ebp - 0x30]
push eax
push edx
mov ecx, dword [edi + 8]
push ecx
call fcn.004d33b8
mov ax, word [esi + 0x40]
add esp, 0x3c
mov word [edi + 0x1e], ax
mov dx, word [esi + 0x4c]
mov word [edi + 0x20], dx
mov cx, word [esi + 0x48]
mov word [edi + 0x1c], cx
mov eax, dword [esi + 0x64]
or eax, 1
mov dword [edi + 0xc], eax
cmp dword [esi + 0x6c], 0
je 0x4d45e7
xor edx, edx
mov dword [ebp - 0x14], edx
mov dword [ebp - 0xc], 0xffffffff
cmp dword [ebp - 0x20], 0
jne 0x4d45fc
mov ecx, dword [ebp - 0x38]
cmp byte [ecx], 0
je 0x4d45fc
mov dword [ebp - 0x20], 0x16
mov eax, dword [ebp - 0x30]
mov byte [eax], 0
inc dword [ebp - 0x30]
mov edx, dword [ebp - 0x30]
sub edx, dword [ebp - 0x34]
cmp edx, dword [ebp - 4]
jle 0x4d4617
mov dword [ebp - 0x20], 0x17
mov ecx, dword [esi + 0x20]
cmp ecx, dword [esi + 0x10]
jbe 0x4d46be
mov dword [ebp - 0x50], 0xffffffff
xor eax, eax
mov dword [ebp - 0x54], eax
jmp 0x4d46ac
sub dword [esi + 0x20], 2
mov eax, dword [esi + 0x20]
xor ebx, ebx
mov edx, dword [ebp - 0x34]
xor ecx, ecx
mov bl, byte [eax]
movzx eax, byte [eax + 1]
shl ebx, 8
or ebx, eax
mov eax, dword [ebp - 0x34]
mov cl, byte [edx + ebx]
xor edx, edx
shl ecx, 8
mov dl, byte [eax + ebx + 1]
or ecx, edx
mov dword [ebp - 0x58], ecx
mov ecx, dword [ebp - 0x58]
cmp ecx, dword [ebp - 0x50]
je 0x4d4683
mov eax, dword [ebp - 0x58]
push eax
mov edx, dword [ebp - 0x24]
push edx
mov ecx, dword [ebp - 0x34]
push ecx
call fcn.004ccb84
add esp, 0xc
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x50], eax
cmp dword [ebp - 0x54], 0
jne 0x4d4692
mov dword [ebp - 0x20], 0x35
jmp 0x4d46ac
mov edx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x54]
sub eax, dword [ebp - 0x34]
mov ecx, eax
sar ecx, 8
mov byte [edx + ebx], cl
mov edx, dword [ebp - 0x34]
and al, 0xff
mov byte [edx + ebx + 1], al
cmp dword [ebp - 0x20], 0
jne 0x4d46be
mov eax, dword [esi + 0x20]
cmp eax, dword [esi + 0x10]
ja 0x4d4631
cmp dword [esi + 0x3c], 0x1000
jle 0x4d46d2
mov edx, dword [esi + 0x10]
push edx
call dword [0x5ba2f8]
pop ecx
xor ecx, ecx
mov dword [esi + 0x10], ecx
cmp dword [ebp - 0x20], 0
jne 0x4d46ee
mov ax, word [edi + 0x20]
cmp ax, word [edi + 0x1e]
jbe 0x4d46ee
mov dword [ebp - 0x20], 0xf
test byte [ebp + 0xe], 2
jne 0x4d4705
push esi
mov edx, dword [ebp - 0x24]
push edx
mov ecx, dword [ebp - 0x34]
push ecx
call fcn.004ce498
add esp, 0xc
cmp dword [esi + 0x74], 0
je 0x4d47dd
push 0xffffffffffffffff
mov eax, dword [ebp - 0x24]
push eax
mov edx, dword [ebp - 0x34]
push edx
call fcn.004ccb84
add esp, 0xc
mov ebx, eax
test ebx, ebx
je 0x4d47dd
xor eax, eax
xor edx, edx
mov al, byte [ebx + 1]
mov dl, byte [ebx + 2]
shl eax, 8
or eax, edx
jne 0x4d47c1
xor ecx, ecx
xor eax, eax
mov cl, byte [ebx - 2]
mov al, byte [ebx - 1]
shl ecx, 8
or ecx, eax
add ecx, ebx
add ecx, 0xfffffffd
mov dword [ebp - 0x5c], ecx
xor ecx, ecx
mov edx, dword [ebp - 0x5c]
mov cl, byte [edx]
mov dword [ebp - 0x60], ecx
mov eax, dword [ebp - 0x5c]
mov byte [eax], 0
push esi
push 1
test byte [edi + 9], 8
setne dl
and edx, 1
push edx
push ebx
call fcn.004cc7f0
mov edx, dword [ebp - 0x5c]
add esp, 0x10
mov cl, byte [ebp - 0x60]
test eax, eax
mov byte [edx], cl
jge 0x4d47ac
cmp eax, 0xfffffffe
jne 0x4d4796
mov ecx, 0x24
jmp 0x4d47a7
cmp eax, 0xfffffffc
jne 0x4d47a2
mov ecx, 0x46
jmp 0x4d47a7
mov ecx, 0x19
mov dword [ebp - 0x20], ecx
jmp 0x4d47dd
cmp eax, dword [esi + 0x48]
jle 0x4d47b4
mov dword [esi + 0x48], eax
mov edx, eax
sar edx, 8
and al, 0xff
mov byte [ebx + 1], dl
mov byte [ebx + 2], al
add ebx, 3
push 0xffffffffffffffff
mov eax, dword [ebp - 0x24]
push eax
push ebx
call fcn.004ccb84
add esp, 0xc
mov ebx, eax
test ebx, ebx
jne 0x4d472b
cmp dword [ebp - 0x20], 0
je 0x4d481a
push edi
call dword [0x5ba2f8]
pop ecx
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp + 0x18]
sub eax, dword [ebp + 8]
mov dword [edx], eax
mov ecx, dword [ebp - 0x20]
push ecx
call fcn.004cbc70
pop ecx
mov edx, dword [ebp + 0x14]
mov dword [edx], eax
cmp dword [ebp + 0x10], 0
je 0x4d4813
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
mov dword [eax], ecx
xor eax, eax
jmp 0x4d4937
test byte [edi + 8], 0x10
jne 0x4d48ad
push 0
push esi
push 0
mov edx, dword [ebp - 0x34]
push edx
call fcn.004d37bc
add esp, 0x10
test eax, eax
je 0x4d483f
or dword [edi + 8], 0x10
jmp 0x4d48ad
cmp dword [ebp - 8], 0
jge 0x4d485a
push 0
lea ecx, [ebp - 8]
push ecx
mov eax, dword [ebp - 0x34]
push eax
call fcn.004d3b44
add esp, 0xc
mov dword [ebp - 0x10], eax
cmp dword [ebp - 8], 0
jl 0x4d4891
mov dx, word [ebp - 0x10]
and dx, 0xff
mov word [edi + 0x18], dx
test byte [ebp - 8], 1
je 0x4d488b
movzx ecx, word [edi + 0x18]
mov eax, dword [esi + 4]
xor edx, edx
mov dl, byte [eax + ecx]
movzx ecx, word [edi + 0x18]
cmp edx, ecx
je 0x4d488b
or dword [edi + 0xc], 0x20
or dword [edi + 0xc], 0x10
jmp 0x4d48ad
push 0
push esi
push 0
mov eax, dword [ebp - 0x34]
push eax
call fcn.004d394c
add esp, 0x10
test eax, eax
je 0x4d48ad
or dword [edi + 0xc], 0x100
cmp dword [ebp - 0xc], 0
jl 0x4d48f1
test byte [edi + 8], 0x10
je 0x4d48bf
test byte [ebp - 0xc], 2
je 0x4d48f1
mov dx, word [ebp - 0x14]
and dx, 0xff
mov word [edi + 0x1a], dx
test byte [ebp - 0xc], 1
je 0x4d48ed
movzx ecx, word [edi + 0x1a]
mov eax, dword [esi + 4]
xor edx, edx
mov dl, byte [eax + ecx]
movzx ecx, word [edi + 0x1a]
cmp edx, ecx
je 0x4d48ed
or dword [edi + 0xc], 0x80
or dword [edi + 0xc], 0x40
push 0
push esi
mov eax, dword [ebp - 0x24]
push eax
mov edx, dword [ebp - 0x30]
push edx
mov ecx, dword [ebp - 0x34]
push ecx
call fcn.004ccda8
add esp, 0x14
test eax, eax
je 0x4d4915
or dword [edi + 0xc], 0x8000
jmp 0x4d4935
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x34]
xor edx, edx
mov dl, byte [eax + 1]
xor eax, eax
shl edx, 8
mov al, byte [ecx + 2]
or edx, eax
add dword [ebp - 0x34], edx
mov edx, dword [ebp - 0x34]
cmp byte [edx], 0x77
je 0x4d48f1
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret