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

Disassembly:
push ebp
push ebx
push edi
push esi
mov eax, 0x121c
call fcn.004d2efc
sub esp, 0x121c
mov ebp, dword [esp + 0x123c]
mov esi, dword [esp + 0x1238]
mov ecx, dword [esp + 0x1230]
mov dword [esp + 0x4c], 1
mov dword [esp + 0xc], 0
lea eax, [esp + 0x12c]
mov dword [esp + 0x88], eax
mov dword [esp + 0x98], 0x14
mov dword [esp + 0x10], ecx
test ebp, ebp
je 0x4d48b7
mov edx, dword [esp + 0x1240]
mov dword [ebp], 0
test esi, esi
je 0x4d4816
mov dword [esi], 0
test edx, edx
je 0x4d48ca
mov eax, dword [esp + 0x1244]
mov edi, dword [esp + 0x1234]
mov dword [edx], 0
test eax, eax
mov edx, 0x5599e0
cmovne edx, eax
mov dword [esp + 0x60], edx
lea eax, [edx + 0x100]
mov dword [esp + 0x64], eax
lea eax, [edx + 0x200]
mov dword [esp + 0x68], eax
lea eax, [edx + 0x340]
mov dword [esp + 0x6c], eax
test edi, 0xd8008580
je 0x4d48dc
mov dword [esp + 0xc], 0x11
cmp dword [esp + 0x98], 0x15
jl 0x4d488b
sub esp, 0xc
push dword [esp + 0x94]
call dword [0x545974]
add esp, 0x10
mov eax, dword [esp + 0x10]
sub eax, dword [esp + 0x1230]
sar eax, 1
mov ecx, dword [esp + 0x1240]
mov dword [ecx], eax
mov eax, dword [esp + 0xc]
test eax, eax
jg 0x4d4d85
mov ecx, str.no_error
jmp 0x4d4dac
test esi, esi
je 0x4d4db5
mov dword [esi], 0x63
jmp 0x4d4db5
mov dword [esp + 0xc], 0x10
mov eax, 0x10
jmp 0x4d4d85
mov dword [esp + 0x24], edx
mov dword [esp + 0xc4], 0
movzx eax, word [ecx]
xor ebx, ebx
cmp eax, 0x28
jne 0x4d4cfd
mov dword [esp + 0x14], 0xffffffff
mov eax, ecx
mov dword [esp + 0x20], 0xffffffff
mov ebp, ebx
movzx ecx, word [ecx + ebp*2 + 2]
cmp ecx, 0x2a
jne 0x4d4d0f
add eax, 4
sub esp, 4
push 6
push 0x545a68
push eax
call fcn.0052f610
add esp, 0x10
test eax, eax
je 0x4d4b8d
mov eax, dword [esp + 0x10]
lea eax, [eax + ebp*2 + 4]
sub esp, 4
push 4
push str.UTF_
push eax
call fcn.0052f610
add esp, 0x10
test eax, eax
je 0x4d4b92
mov eax, dword [esp + 0x10]
lea eax, [eax + ebp*2 + 4]
sub esp, 4
push 4
push str.UCP_
push eax
call fcn.0052f610
add esp, 0x10
test eax, eax
je 0x4d4ba2
mov eax, dword [esp + 0x10]
lea eax, [eax + ebp*2 + 4]
sub esp, 4
push 0x10
push str.NO_AUTO_POSSESS_
push eax
call fcn.0052f610
add esp, 0x10
test eax, eax
je 0x4d4bb2
mov eax, dword [esp + 0x10]
lea eax, [eax + ebp*2 + 4]
sub esp, 4
push 0xd
push str.NO_START_OPT_
push eax
call fcn.0052f610
add esp, 0x10
test eax, eax
je 0x4d4bc2
mov eax, dword [esp + 0x10]
lea eax, [eax + ebp*2 + 4]
sub esp, 4
push 0xc
push str.LIMIT_MATCH
push eax
call fcn.0052f610
add esp, 0x10
test eax, eax
je 0x4d4bd2
mov eax, dword [esp + 0x10]
lea eax, [eax + ebp*2 + 4]
sub esp, 4
push 0x10
push str.LIMIT_RECURSION
push eax
call fcn.0052f610
add esp, 0x10
test eax, eax
je 0x4d4bf5
mov eax, dword [esp + 0x10]
lea eax, [eax + ebp*2 + 4]
sub esp, 4
push 3
push 0x545ab6
push eax
call fcn.0052f610
add esp, 0x10
test eax, eax
je 0x4d4b10
mov eax, dword [esp + 0x10]
lea eax, [eax + ebp*2 + 4]
sub esp, 4
push 3
push 0x545aba
push eax
call fcn.0052f610
add esp, 0x10
test eax, eax
je 0x4d4b1f
mov eax, dword [esp + 0x10]
lea eax, [eax + ebp*2 + 4]
sub esp, 4
push 5
push str.CRLF_
push eax
call fcn.0052f610
add esp, 0x10
test eax, eax
je 0x4d4b2e
mov eax, dword [esp + 0x10]
lea eax, [eax + ebp*2 + 4]
sub esp, 4
push 4
push str.ANY_
push eax
call fcn.0052f610
add esp, 0x10
test eax, eax
je 0x4d4b3d
mov eax, dword [esp + 0x10]
lea eax, [eax + ebp*2 + 4]
sub esp, 4
push 8
push str.ANYCRLF_
push eax
call fcn.0052f610
add esp, 0x10
test eax, eax
je 0x4d4b4c
mov eax, dword [esp + 0x10]
lea eax, [eax + ebp*2 + 4]
sub esp, 4
push 0xc
push str.BSR_ANYCRLF_
push eax
call fcn.0052f610
add esp, 0x10
test eax, eax
je 0x4d4b5b
mov eax, dword [esp + 0x10]
lea eax, [eax + ebp*2 + 4]
sub esp, 4
push 0xc
push str.BSR_UNICODE_
push eax
call fcn.0052f610
add esp, 0x10
test eax, eax
jne 0x4d4d0f
add ebp, 0xe
mov eax, 0x1000000
jmp 0x4d4b63
add ebp, 5
mov eax, 0x100000
mov ecx, 0xff8fffff
jmp 0x4d4b70
add ebp, 5
mov eax, 0x200000
mov ecx, 0xff8fffff
jmp 0x4d4b70
add ebp, 7
mov eax, 0x300000
mov ecx, 0xff8fffff
jmp 0x4d4b70
add ebp, 6
mov eax, 0x400000
mov ecx, 0xff8fffff
jmp 0x4d4b70
add ebp, 0xa
mov eax, 0x500000
mov ecx, 0xff8fffff
jmp 0x4d4b70
add ebp, 0xe
mov eax, 0x800000
mov ecx, 0xfe7fffff
nop dword [eax + eax]
and edi, ecx
or edi, eax
mov ecx, dword [esp + 0x10]
lea eax, [ecx + ebp*2]
movzx edx, word [ecx + ebp*2]
cmp edx, 0x28
je 0x4d490d
jmp 0x4d4d0f
add ebp, 8
jmp 0x4d4b95
add ebp, 6
or edi, 0x800
mov ebx, ebp
jmp 0x4d4ce0
add ebp, 6
or edi, 0x20000000
mov ebx, ebp
jmp 0x4d4ce0
add ebp, 0x12
or edi, 0x20000
mov ebx, ebp
jmp 0x4d4ce0
add ebp, 0xf
or edi, 0x4000000
mov ebx, ebp
jmp 0x4d4ce0
mov dword [esp + 0x18], edi
lea ebx, [ebp + 0xe]
mov edx, dword [esp + 0x10]
movzx ecx, word [edx + ebp*2 + 0x1c]
movzx esi, cx
lea edi, [esi - 0x30]
xor eax, eax
cmp edi, 9
jbe 0x4d4c1b
mov edi, dword [esp + 0x18]
jmp 0x4d4c53
mov dword [esp + 0x18], edi
lea ebx, [ebp + 0x12]
mov edx, dword [esp + 0x10]
movzx ecx, word [edx + ebp*2 + 0x24]
movzx esi, cx
lea edi, [esi - 0x30]
xor eax, eax
cmp edi, 9
jbe 0x4d4c7b
mov edi, dword [esp + 0x18]
jmp 0x4d4cb3
xor eax, eax
mov edi, dword [esp + 0x18]
nop word cs:[eax + eax]
lea eax, [eax + eax*4]
lea eax, [esi + eax*2 - 0x30]
movzx ecx, word [edx + ebx*2 + 2]
inc ebx
cmp eax, 0x19999998
ja 0x4d4c53
movzx esi, cx
lea edi, [esi - 0x30]
cmp edi, 0xa
mov edi, dword [esp + 0x18]
jb 0x4d4c30
movzx ecx, cx
cmp ecx, 0x29
jne 0x4d5463
inc ebx
cmp eax, dword [esp + 0x14]
mov esi, dword [esp + 0x1238]
jae 0x4d4ce0
or byte [esp + 0xc5], 0x20
mov dword [esp + 0x14], eax
jmp 0x4d4ce0
xor eax, eax
mov edi, dword [esp + 0x18]
nop word cs:[eax + eax]
lea eax, [eax + eax*4]
lea eax, [esi + eax*2 - 0x30]
movzx ecx, word [edx + ebx*2 + 2]
inc ebx
cmp eax, 0x19999998
ja 0x4d4cb3
movzx esi, cx
lea edi, [esi - 0x30]
cmp edi, 0xa
mov edi, dword [esp + 0x18]
jb 0x4d4c90
movzx ecx, cx
cmp ecx, 0x29
jne 0x4d5463
inc ebx
cmp eax, dword [esp + 0x20]
mov esi, dword [esp + 0x1238]
jae 0x4d4ce0
or byte [esp + 0xc5], 0x40
mov dword [esp + 0x20], eax
nop dword [eax]
mov ebp, dword [esp + 0x123c]
mov ecx, dword [esp + 0x10]
lea eax, [ecx + ebx*2]
movzx edx, word [ecx + ebx*2]
cmp edx, 0x28
je 0x4d490b
jmp 0x4d4d18
mov dword [esp + 0x20], 0xffffffff
mov dword [esp + 0x14], 0xffffffff
jmp 0x4d4d18
mov ebx, ebp
mov ebp, dword [esp + 0x123c]
mov eax, edi
and eax, 0x800
test dword [esp + 0x1234], 0x10000
je 0x4d4d3f
test eax, eax
je 0x4d4d3f
mov dword [esp + 0xc], 0x4e
mov eax, 0x4e
jmp 0x4d4d85
mov dword [esp + 0x34], eax
mov eax, edi
and eax, 0x2800
cmp eax, 0x800
mov dword [esp + 0x3c], ebx
jne 0x4d4dc4
sub esp, 4
push dword [esp + 0x1244]
push 0xffffffffffffffff
push dword [esp + 0x123c]
call fcn.0052f680
add esp, 0x10
mov dword [esp + 0xc], eax
test eax, eax
je 0x4d4dc4
mov dword [esp + 0xc], 0x4a
mov eax, 0x4a
mov ecx, str.no_error
mov edx, eax
nop dword [eax]
cmp byte [ecx], 0
lea ecx, [ecx + 1]
jne 0x4d4d90
cmp byte [ecx], 0
je 0x4d4da7
cmp edx, 2
lea edx, [edx - 1]
jge 0x4d4d90
jmp 0x4d4dac
mov ecx, str.Error_text_not_found__please_report_
test esi, esi
mov dword [ebp], ecx
je 0x4d4db5
mov dword [esi], eax
xor edi, edi
mov eax, edi
add esp, 0x121c
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, edi
and eax, 0x1800000
cmp eax, 0x1800000
jne 0x4d4ded
mov dword [esp + 0xc], 0x38
cmp dword [esp + 0x98], 0x15
jge 0x4d4878
jmp 0x4d488b
mov eax, edi
shr eax, 0x14
mov ecx, eax
and cl, 7
cmp cl, 5
ja case.default.0x4d4e07
mov cx, 0xa
and eax, 7
mov dword [esp + 0x18], edi
jmp dword [eax*4 + 0x4d5a68]
mov cx, 0xd
mov dword [esp + 0xe4], 0
mov dword [esp + 0xe8], 1
mov word [esp + 0xec], cx
jmp 0x4d4e6d
mov dword [esp + 0xe4], 0
mov dword [esp + 0xe8], 2
mov dword [esp + 0xec], 0xa000d
jmp 0x4d4e6d
mov dword [esp + 0xe4], 1
jmp 0x4d4e6d
mov dword [esp + 0xe4], 2
mov dword [esp + 0xac], 0
mov dword [esp + 0xb0], 0
mov dword [esp + 0xa4], 0
mov dword [esp + 0xa0], 0
mov dword [esp + 0x90], 0
mov dword [esp + 0x94], 0
mov dword [esp + 0x8c], 0
mov dword [esp + 0xd8], 0
mov dword [esp + 0xdc], 0
mov dword [esp + 0xb4], 0
lea esi, [esp + 0x21c]
mov dword [esp + 0x74], esi
mov dword [esp + 0x80], esi
mov dword [esp + 0xe0], 0
mov dword [esp + 0x70], esi
mov dword [esp + 0x9c], 0x800
mov edi, dword [esp + 0x1230]
mov dword [esp + 0x78], edi
sub esp, 0xc
push edi
call fcn.0052f660
add esp, 0x10
lea eax, [edi + eax*2]
mov dword [esp + 0x7c], eax
mov dword [esp + 0xc8], 0
mov dword [esp + 0xb8], 0
mov dword [esp + 0xbc], 0
mov dword [esp + 0xa8], 0
mov edi, dword [esp + 0x18]
mov dword [esp + 0xc0], edi
mov dword [esp + 0x84], 0
mov eax, dword [esp + 0x3c]
lea eax, [eax + eax]
add dword [esp + 0x10], eax
mov dword [esp + 0x30], esi
mov word [esp + 0x21c], 0x83
sub esp, 0xc
lea eax, [esp + 0x58]
lea esi, [esp + 0x50]
lea ebx, [esp + 0x18]
lea edx, [esp + 0x3c]
mov ecx, edi
push eax
lea eax, [esp + 0x70]
push eax
push 0
lea eax, [esp + 0x60]
push eax
lea eax, [esp + 0x5c]
push eax
lea eax, [esp + 0x58]
push eax
push esi
push 0
push 0
push 0
push 0
push ebx
lea eax, [esp + 0x4c]
push eax
call fcn.004d5d10
add esp, 0x40
cmp dword [esp + 0xc], 0
mov esi, dword [esp + 0x1238]
jne 0x4d486e
mov eax, dword [esp + 0x4c]
cmp eax, 0x10001
jl 0x4d4ffb
mov dword [esp + 0xc], 0x14
cmp dword [esp + 0x98], 0x15
jge 0x4d4878
jmp 0x4d488b
mov ecx, dword [esp + 0x94]
imul ecx, dword [esp + 0x90]
add ecx, eax
lea esi, [ecx + ecx + 0x38]
sub esp, 0xc
push esi
call dword [0x545970]
add esp, 0x10
mov ebx, eax
test ebx, ebx
je 0x4d5471
mov dword [ebx], 0x50435245
mov dword [ebx + 4], esi
mov eax, dword [esp + 0xc0]
mov dword [esp + 0x2c], eax
mov dword [ebx + 8], eax
mov eax, dword [esp + 0xc4]
mov dword [ebx + 0xc], eax
mov eax, dword [esp + 0x14]
mov dword [ebx + 0x10], eax
mov eax, dword [esp + 0x20]
mov dword [ebx + 0x14], eax
mov dword [ebx + 0x18], 0
mov word [ebx + 0x22], 0x1c
mov eax, dword [esp + 0x94]
movzx eax, ax
mov word [ebx + 0x24], ax
mov ecx, dword [esp + 0x90]
mov word [ebx + 0x26], cx
mov dword [ebx + 0x28], 0
xor edx, edx
mov esi, dword [esp + 0x24]
cmp esi, 0x5599e0
cmovne edx, esi
mov dword [ebx + 0x30], edx
mov dword [ebx + 0x34], 0
mov dword [ebx + 0x2c], 0
mov edx, dword [esp + 0x70]
mov esi, dword [esp + 0xa0]
mov dword [esp + 0xa4], esi
mov dword [esp + 0xb8], 0
mov dword [esp + 0xbc], 0
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa8], 0
movzx esi, cx
imul esi, eax
lea eax, [ebx + 0x38]
mov dword [esp + 0x14], eax
mov dword [esp + 0x8c], eax
lea eax, [ebx + esi*2 + 0x38]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x80], edx
lea eax, [esp + 0xc8]
mov dword [esp + 0xe0], 0
mov dword [esp + 0x84], 0
mov dword [eax + 0xc], 0
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov eax, ecx
mov ecx, dword [esp + 0x2c]
test eax, eax
mov dword [esp + 0x28], ebx
mov edx, dword [esp + 0x3c]
lea esi, [esp + 0xc]
jle 0x4d534e
mov ecx, dword [esp + 0x88]
mov dword [esp + 0x90], 0
xor ebx, ebx
jmp 0x4d5186
mov ecx, dword [esp + 0xf8]
add ecx, 0xc
dec eax
mov edx, dword [esp + 0x8c]
mov dword [esp + 0x14], edx
mov edx, dword [ecx]
mov dword [esp + 0x20], edx
mov edx, dword [ecx + 4]
mov esi, dword [ecx + 8]
mov dword [esp + 0xfc], esi
mov dword [esp + 0x54], edx
lea edx, [edx + edx]
mov dword [esp + 0x24], edx
test ebx, ebx
mov dword [esp + 0x100], eax
mov dword [esp + 0xf8], ecx
jle 0x4d5276
mov edx, dword [esp + 0x94]
lea eax, [edx + edx]
mov dword [esp + 0x104], eax
mov eax, ebx
imul eax, edx
mov ecx, eax
mov dword [esp + 0xf4], ecx
neg eax
lea ecx, [ebx + ebx]
imul ecx, edx
mov dword [esp + 0x5c], ecx
lea esi, [ebx + ebx + 2]
mov dword [esp + 0x2c], edx
imul esi, edx
dec esi
mov dword [esp + 0x58], 0
xor edi, edi
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x108], ebx
nop word cs:[eax + eax]
mov dword [esp + 0x14], eax
lea eax, [ecx + 2]
sub esp, 4
push dword [esp + 0x28]
push eax
push dword [esp + 0x2c]
mov ebx, ecx
call sub.msvcrt.dll_memcmp
add esp, 0x10
test eax, eax
je 0x4d523c
mov ecx, dword [esp + 0x2c]
lea ebp, [ebx + ecx*2]
jns 0x4d524f
jmp 0x4d527c
mov eax, dword [esp + 0x54]
cmp word [ebx + eax*2 + 2], 0
mov ecx, dword [esp + 0x2c]
lea ebp, [ebx + ecx*2]
jne 0x4d527c
inc edi
mov edx, dword [esp + 0x104]
sub dword [esp + 0x58], edx
mov eax, dword [esp + 0x14]
add eax, ecx
sub dword [esp + 0x5c], edx
sub esi, edx
mov ebx, dword [esp + 0x108]
cmp ebx, edi
mov ecx, ebp
jg 0x4d5210
jmp 0x4d52c0
mov ebp, dword [esp + 0x14]
jmp 0x4d52c0
mov edi, ebp
cmp ebp, ebx
jbe 0x4d529b
cmp dword [esp + 0x14], 0
je 0x4d52be
mov ecx, dword [esp + 0x5c]
movzx eax, byte [ebx + ecx - 1]
mov byte [ebx + esi], al
dec esi
dec ecx
jne 0x4d528d
jmp 0x4d52be
cmp dword [esp + 0x14], 0
je 0x4d52be
mov eax, dword [esp + 0xf4]
mov ecx, dword [esp + 0x58]
lea eax, [ecx + eax*2]
xor ecx, ecx
movzx edx, byte [ebx + ecx]
mov byte [edi + ecx], dl
inc ecx
cmp eax, ecx
jne 0x4d52b2
mov ebp, ebx
mov eax, dword [esp + 0xfc]
mov word [ebp], ax
lea eax, [ebp + 2]
sub esp, 4
push dword [esp + 0x28]
push dword [esp + 0x28]
push eax
call sub.msvcrt.dll_memcpy
add esp, 0x10
mov eax, dword [esp + 0x54]
mov word [ebp + eax*2 + 2], 0
mov ebx, dword [esp + 0x90]
inc ebx
mov dword [esp + 0x90], ebx
mov eax, dword [esp + 0x100]
cmp eax, 2
mov ebp, dword [esp + 0x123c]
mov edi, dword [esp + 0x18]
lea esi, [esp + 0xc]
jge 0x4d5170
cmp dword [esp + 0x98], 0x15
jl 0x4d5338
sub esp, 0xc
push dword [esp + 0x94]
call dword [0x545974]
add esp, 0x10
mov dword [esp + 0x98], 0
mov ebx, dword [esp + 0x28]
mov ecx, dword [ebx + 8]
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x1230]
lea eax, [eax + edx*2]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x30], eax
mov word [eax], 0x83
sub esp, 0xc
lea edx, [esp + 0x3c]
push 0
lea eax, [esp + 0x70]
push eax
push 0
lea eax, [esp + 0x60]
push eax
lea eax, [esp + 0x5c]
push eax
lea eax, [esp + 0x58]
push eax
lea eax, [esp + 0x68]
push eax
push 0
push 0
push 0
push 0
push esi
lea eax, [esp + 0x4c]
push eax
call fcn.004d5d10
add esp, 0x40
movzx eax, word [esp + 0xa0]
mov word [ebx + 0x1e], ax
movzx eax, word [esp + 0xac]
mov word [ebx + 0x20], ax
movzx eax, word [esp + 0xa8]
mov word [ebx + 0x1c], ax
mov eax, dword [esp + 0xc4]
or eax, 2
mov dword [ebx + 0xc], eax
cmp dword [esp + 0xcc], 0
je 0x4d53ee
mov dword [esp + 0x40], 0
mov dword [esp + 0x48], 0xffffffff
cmp dword [esp + 0xc], 0
mov eax, dword [esp + 0x34]
jne 0x4d540f
mov eax, dword [esp + 0x10]
cmp word [eax], 0
mov eax, dword [esp + 0x34]
je 0x4d540f
mov dword [esp + 0xc], 0x16
shr eax, 0xb
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x30]
lea ecx, [eax + 2]
mov dword [esp + 0x30], ecx
mov word [eax], 0
mov dword [esp + 0x20], ecx
mov eax, ecx
sub eax, dword [esp + 0x1c]
sar eax, 1
cmp eax, dword [esp + 0x4c]
jle 0x4d547e
mov dword [esp + 0xc], 0x17
mov edx, 0x17
mov eax, dword [esp + 0x70]
mov dword [esp + 0x24], eax
cmp dword [esp + 0x9c], 0x801
jge 0x4d553c
jmp 0x4d5550
mov ebx, ebp
mov esi, dword [esp + 0x1238]
jmp 0x4d4d11
mov dword [esp + 0xc], 0x15
jmp 0x4d5882
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x70]
mov esi, dword [esp + 0x80]
mov dword [esp + 0x24], eax
cmp esi, eax
jbe 0x4d552f
test edx, edx
jne 0x4d552f
add esi, 0xfffffffe
xor eax, eax
mov dword [esp + 0x2c], 0xffffffff
mov dword [esp + 0x80], esi
movzx edi, word [esi]
test edi, edi
mov ecx, dword [esp + 0x1c]
je 0x4d550f
movzx edx, word [ecx + edi*2 - 2]
cmp edx, 0x75
jne 0x4d550f
mov ebx, ebp
movzx ebp, word [ecx + edi*2]
cmp dword [esp + 0x2c], ebp
je 0x4d54ee
sub esp, 4
push ebp
push dword [esp + 0x1c]
push dword [esp + 0x28]
call fcn.004d4440
add esp, 0x10
mov dword [esp + 0x2c], ebp
test eax, eax
mov ebp, ebx
je 0x4d551e
mov edx, eax
mov ecx, dword [esp + 0x1c]
sub edx, ecx
shr edx, 1
mov word [ecx + edi*2], dx
cmp esi, dword [esp + 0x24]
lea esi, [esi - 2]
ja 0x4d54ae
xor edx, edx
jmp 0x4d552b
mov dword [esp + 0xc], 0xa
mov edx, 0xa
jmp 0x4d552b
mov dword [esp + 0xc], 0x35
mov edx, 0x35
mov edi, dword [esp + 0x18]
cmp dword [esp + 0x9c], 0x801
jl 0x4d5550
sub esp, 0xc
push dword [esp + 0x30]
call dword [0x545974]
add esp, 0x10
mov edx, dword [esp + 0xc]
mov dword [esp + 0x70], 0
test edx, edx
jne 0x4d5579
mov ecx, dword [esp + 0x28]
movzx eax, word [ecx + 0x20]
xor edx, edx
cmp ax, word [ecx + 0x1e]
jbe 0x4d5579
mov dword [esp + 0xc], 0xf
mov edx, 0xf
and edi, 0x20000
or edi, edx
jne 0x4d57bb
mov eax, dword [esp + 0x1c]
movzx ebx, word [eax]
cmp ebx, 0xa1
ja case.0x4d5743.0
lea edi, [esp + 0x10c]
mov esi, dword [esp + 0x1c]
lea eax, [ebx - 0x21]
movzx eax, ax
cmp eax, 0x40
ja 0x4d5676
movzx ecx, bx
mov ax, 0x55
cmp ecx, 0x54
ja 0x4d55e1
mov ax, 0x48
cmp ecx, 0x47
ja 0x4d55e1
mov ax, 0x3b
cmp ecx, 0x3a
ja 0x4d55e1
cmp ecx, 0x2d
mov ax, 0x21
mov cx, 0x2e
cmova ax, cx
add ebx, 0x21
sub ebx, eax
movzx eax, bx
xor ecx, ecx
cmp eax, 0x28
ja 0x4d5608
sub esp, 8
mov ecx, esi
mov edx, dword [esp + 0x1c]
push edi
push dword [esp + 0x70]
call fcn.004decb0
add esp, 0x10
mov ecx, eax
lea eax, [ebx - 0x21]
movzx ebp, ax
xor edx, edx
cmp ebp, 6
ja 0x4d561d
cwde
mov edx, dword [eax*4 + 0x547070]
mov dword [esp + 0x110], edx
mov dword [esp + 0x50], 0x3e8
test ecx, ecx
je case.default.0x4d570a
mov edx, dword [esp + 0x14]
lea eax, [esp + 0x50]
push eax
push ecx
push edi
lea eax, [esp + 0x6c]
push eax
call fcn.004df210
add esp, 0x10
test eax, eax
je case.default.0x4d570a
add ebx, 0xffffffdf
movzx eax, bx
cmp eax, 7
ja case.default.0x4d570a
movsx eax, bx
movzx eax, word [eax + eax + str._t_b_b_a_a]
add word [esi], ax
jmp case.default.0x4d570a
mov ecx, 0x11
lea eax, [ebx - 0x6e]
movzx eax, ax
cmp eax, 2
jb 0x4d5696
movzx eax, bx
cmp eax, 0x70
jne 0x4d5732
movzx ecx, word [esi + 2]
movzx ebx, word [esi + ecx*2]
lea eax, [ebx - 0x62]
movzx eax, ax
cmp eax, 7
ja case.default.0x4d570a
sub esp, 8
mov dword [esp + 0x20], ecx
mov ecx, esi
mov ebp, edi
mov edi, dword [esp + 0x1c]
mov edx, edi
push ebp
push dword [esp + 0x70]
call fcn.004decb0
add esp, 0x10
mov ecx, ebx
not ecx
and ecx, 1
mov dword [esp + 0x110], ecx
mov dword [esp + 0x50], 0x3e8
mov ecx, eax
mov edx, edi
mov edi, ebp
lea ebp, [esp + 0x50]
push ebp
push eax
push edi
lea eax, [esp + 0x6c]
push eax
call fcn.004df210
mov ecx, dword [esp + 0x28]
add esp, 0x10
test eax, eax
je case.default.0x4d570a
add ebx, 0xffffff9e
movzx eax, bx
cmp eax, 7
ja case.default.0x4d570a
jmp dword [eax*4 + 0x4d5a80]
mov word [esi + ecx*2], 0x6a
jmp case.default.0x4d570a
mov word [esi + ecx*2], 0x6b
jmp case.default.0x4d570a
mov word [esi + ecx*2], 0x6c
jmp case.default.0x4d570a
mov word [esi + ecx*2], 0x6d
mov bx, word [esi]
movzx eax, bx
mov ebp, dword [esp + 0x123c]
cmp eax, 0x9b
ja case.0x4d5743.1
jmp dword [eax*4 + 0x4d5aa0]
movzx ecx, word [esi + 2]
add ecx, 0xfffffff1
movzx ecx, cx
lea edx, [esi + 4]
cmp ecx, 2
cmovb esi, edx
jmp case.0x4d5743.1
movzx ecx, word [esi + 2]
lea esi, [esi + ecx*2]
jmp case.0x4d5743.1
lea ecx, [esi + 4]
movzx edx, word [esi + 4]
add edx, 0xfffffff1
movzx edx, dx
cmp edx, 2
cmovb esi, ecx
cmp dword [esp + 0x14], 0
movzx ecx, byte [eax + 0x547228]
lea esi, [esi + ecx*2]
je 0x4d57a8
add eax, 0xffffffe3
cmp eax, 0x37
ja 0x4d57a8
movzx eax, word [esi - 2]
and eax, 0xfc00
lea ecx, [esi + 2]
cmp eax, 0xd800
cmove esi, ecx
movzx ebx, word [esi]
cmp ebx, 0xa2
jb 0x4d55a5
mov edx, dword [esp + 0xc]
mov dword [esp + 0x18], edx
test edx, edx
jne 0x4d586b
mov eax, dword [esp + 0xd4]
test eax, eax
je 0x4d586b
sub esp, 4
push 0xffffffffffffffff
push dword [esp + 0x1c]
push dword [esp + 0x28]
call fcn.004d4440
add esp, 0x10
mov esi, eax
test esi, esi
je 0x4d589c
cmp word [esi + 2], 0
jne 0x4d5850
movzx ebx, word [esi - 2]
movzx edi, word [esi + ebx*2 - 4]
mov word [esi + ebx*2 - 4], 0
mov eax, dword [esp + 0x28]
mov edx, dword [eax + 8]
shr edx, 0xb
and edx, 1
sub esp, 4
mov ecx, esi
push 0
lea eax, [esp + 0x68]
push eax
push 1
call fcn.004d6250
add esp, 0x10
mov word [esi + ebx*2 - 4], di
test eax, eax
js 0x4d5927
cmp eax, dword [esp + 0xa8]
jle 0x4d584c
mov dword [esp + 0xa8], eax
mov word [esi + 2], ax
add esi, 4
sub esp, 4
push 0xffffffffffffffff
push dword [esp + 0x1c]
push esi
call fcn.004d4440
add esp, 0x10
mov esi, eax
test esi, esi
jne 0x4d57f5
cmp dword [esp + 0x18], 0
je 0x4d589c
sub esp, 0xc
push dword [esp + 0x34]
call dword [0x545974]
add esp, 0x10
mov esi, dword [esp + 0x1238]
cmp dword [esp + 0x98], 0x15
jge 0x4d4878
jmp 0x4d488b
mov edi, dword [esp + 0x28]
mov ebx, dword [edi + 8]
test bl, 0x10
lea esi, [esp + 0x60]
mov ebp, dword [esp + 0x1c]
jne 0x4d59b8
sub esp, 8
xor edx, edx
mov ecx, ebp
push 0
push esi
call fcn.004d6760
add esp, 0x10
test eax, eax
je 0x4d58d5
or ebx, 0x10
mov dword [edi + 8], ebx
jmp 0x4d59b8
mov eax, dword [esp + 0x38]
test eax, eax
jns 0x4d58fc
sub esp, 0xc
lea edx, [esp + 0x44]
mov ecx, ebp
push 0
call fcn.004d6960
add esp, 0x10
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x38]
test eax, eax
js 0x4d5960
mov ecx, dword [esp + 0x44]
mov word [edi + 0x18], cx
test al, 1
je 0x4d59b4
movzx eax, cx
cmp dword [esp + 0x34], 0
je 0x4d594b
cmp eax, 0x7f
ja 0x4d597e
mov ecx, dword [esp + 0x64]
movzx ecx, byte [ecx + eax]
cmp eax, ecx
jmp 0x4d59a2
cmp eax, 0xfffffffc
mov ecx, 0x46
mov edx, 0x19
cmove edx, ecx
cmp eax, 0xfffffffe
mov eax, 0x24
cmovne eax, edx
mov dword [esp + 0xc], eax
jmp 0x4d5872
cmp eax, 0xff
ja 0x4d59b4
mov ecx, dword [esp + 0x64]
movzx ecx, byte [ecx + eax]
cmp eax, ecx
jne 0x4d59b0
jmp 0x4d59b4
sub esp, 4
xor edx, edx
mov ecx, ebp
push 0
push 0
push esi
call fcn.004d6ce0
add esp, 0x10
test eax, eax
je 0x4d59b8
or byte [edi + 0xd], 1
jmp 0x4d59b8
mov ecx, eax
shr ecx, 7
movzx ecx, byte [ecx + 0x5494e0]
shl ecx, 7
and eax, 0x7f
or eax, ecx
movzx eax, word [eax + eax + 0x54b6e0]
cmp dword [eax*8 + 0x547e64], 0
lea esi, [esp + 0x60]
mov edi, dword [esp + 0x28]
mov ebp, dword [esp + 0x1c]
je 0x4d59b4
or byte [edi + 0xc], 0x20
or byte [edi + 0xc], 0x10
mov eax, dword [esp + 0x48]
test eax, eax
js 0x4d5a2a
test al, 2
jne 0x4d59cc
mov ecx, dword [edi + 8]
and ecx, 0x10
jne 0x4d5a2a
mov ecx, dword [esp + 0x40]
mov word [edi + 0x1a], cx
test al, 1
je 0x4d5a26
movzx eax, cx
cmp dword [esp + 0x34], 0
je 0x4d5a0f
cmp eax, 0x7f
jbe 0x4d5a16
mov ecx, eax
shr ecx, 7
movzx ecx, byte [ecx + 0x5494e0]
shl ecx, 7
and eax, 0x7f
or eax, ecx
movzx eax, word [eax + eax + 0x54b6e0]
cmp dword [eax*8 + 0x547e64], 0
jne 0x4d5a22
jmp 0x4d5a26
cmp eax, 0xff
ja 0x4d5a26
mov ecx, dword [esp + 0x64]
movzx ecx, byte [ecx + eax]
cmp eax, ecx
je 0x4d5a26
or byte [edi + 0xc], 0x80
or byte [edi + 0xc], 0x40
sub esp, 4
mov ecx, ebp
mov edx, dword [esp + 0x24]
push 0
push esi
push dword [esp + 0x20]
call fcn.004d6f20
add esp, 0x10
test eax, eax
jne 0x4d5a5d
movzx eax, word [ebp + 2]
movzx ecx, word [ebp + eax*2]
lea ebp, [ebp + eax*2]
cmp ecx, 0x77
je 0x4d5a2a
jmp 0x4d4db7
or byte [edi + 0xd], 0x80
jmp 0x4d4db7