Function at 0x4eb95c
Capabilities:
Authenticate hmac

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffb4
push ebx
push esi
push edi
xor edx, edx
mov dword [ebp - 0x4c], edx
mov dword [ebp - 4], edx
mov dword [ebp - 8], edx
mov edi, eax
xor eax, eax
push ebp
push 0x4ecf77
push dword fs:[eax]
mov dword fs:[eax], esp
call fcn.004d4364
mov esi, eax
mov eax, edi
cmp eax, 0x11c4
jg 0x4eb9c8
je 0x4eba00
cmp eax, 0xe62
jg 0x4eb9b4
je 0x4eba00
sub eax, 0xd2a
je 0x4eba00
sub eax, 0x5a
je 0x4eba07
add eax, 0xffffffe7
sub eax, 2
jb 0x4eba00
jmp 0x4ebab6
sub eax, 0x1083
je 0x4eba00
add eax, 0xfffffffd
sub eax, 0xd
jb 0x4eba00
jmp 0x4ebab6
cmp eax, 0x145a
jg 0x4eb9ef
je 0x4eba6b
sub eax, 0x13f1
je 0x4eba00
sub eax, 0x5f
je 0x4eba3e
sub eax, 5
je 0x4eba6b
jmp 0x4ebab6
add eax, 0xffffeba4
sub eax, 2
jb 0x4eba6b
dec eax
jne 0x4ebab6
mov bl, 1
jmp 0x4ecf54
call fcn.00530afc
call fcn.0052fbc0
test al, al
je 0x4eba2f
call fcn.00530afc
call fcn.0052f57c
call fcn.0052e06c
test al, al
je 0x4eba2f
mov bl, 1
jmp 0x4ecf54
xor ebx, ebx
mov eax, dword [0x66be74]
mov byte [eax], 0x12
jmp 0x4ecf54
test esi, esi
je 0x4eba4d
mov eax, dword [0x669700]
cmp dword [eax + 8], 0
jne 0x4eba5c
xor ebx, ebx
mov eax, dword [0x66be74]
mov byte [eax], 0x48
jmp 0x4ecf54
call fcn.004eb27c
mov ebx, eax
xor bl, 1
jmp 0x4ecf54
mov eax, dword [0x6698c8]
cmp byte [eax + 0x1a], 0
je 0x4ebaa0
mov al, 0xa
call fcn.0047a524
test al, al
je 0x4ebaa0
mov eax, dword [0x669a10]
cmp dword [eax], 0
je 0x4ebaa0
mov eax, dword [0x669a10]
mov eax, dword [eax]
call fcn.0050b0d8
mov eax, dword [eax + 0x2c]
cmp dword [eax + 0x24], 0
jne 0x4ebaaf
xor ebx, ebx
mov eax, dword [0x66be74]
mov byte [eax], 0x48
jmp 0x4ecf54
mov bl, 1
jmp 0x4ecf54
test esi, esi
jne 0x4ebac1
xor ebx, ebx
jmp 0x4ecf54
mov eax, edi
cmp eax, 0x11ba
jg 0x4ebd2e
je 0x4ecaf4
cmp eax, 0xe74
jg 0x4ebc02
je 0x4ec5d9
cmp eax, 0xd98
jg 0x4ebb8c
je 0x4ec812
cmp eax, 0xd20
jg 0x4ebb4a
je 0x4ec6b4
cmp eax, 0xc08
jge 0x4ebb23
sub eax, 0xbba
je 0x4ebf7e
sub eax, 0x14
je 0x4ebf7e
jmp case.0x4ebef8.5302
add eax, 0xfffff3f8
sub eax, 4
jb 0x4ebf7e
sub eax, 0x74
je 0x4ebf77
sub eax, 0x8c
je 0x4ec600
jmp case.0x4ebef8.5302
cmp eax, 0xd5c
jg 0x4ebb73
je 0x4ec600
add eax, 0xfffff2cc
sub eax, 5
jb 0x4ec6b4
sub eax, 0xf
je 0x4ec6b4
jmp case.0x4ebef8.5302
sub eax, 0xd70
je 0x4ec64e
sub eax, 5
je 0x4ec64e
jmp case.0x4ebef8.5302
cmp eax, 0xe55
jg 0x4ebbdb
je 0x4ec272
cmp eax, 0xdb7
jg 0x4ebbbf
je 0x4ec908
sub eax, 0xdac
je 0x4ec345
sub eax, 0xa
je 0x4ec8e0
jmp case.0x4ebef8.5302
sub eax, 0xe0b
je 0x4ec953
add eax, 0xffffffd3
sub eax, 2
jb 0x4ebf77
jmp case.0x4ebef8.5302
sub eax, 0xe56
je 0x4ec2b0
sub eax, 8
je 0x4ec2c7
dec eax
je 0x4ec2d9
dec eax
je 0x4ec600
jmp case.0x4ebef8.5302
cmp eax, 0xfa0
jg 0x4ebca1
je 0x4ec2fe
cmp eax, 0xf28
jg 0x4ebc5f
je 0x4ec899
cmp eax, 0xee2
jg 0x4ebc46
je 0x4ebf7e
sub eax, 0xe9c
je 0x4ebf77
sub eax, 0x41
je 0x4ebf7e
jmp case.0x4ebef8.5302
sub eax, 0xf00
je 0x4ec899
sub eax, 0x14
je 0x4ec8b8
jmp case.0x4ebef8.5302
cmp eax, 0xf55
jg 0x4ebc85
je 0x4ec47e
sub eax, 0xf3c
je 0x4ec8b8
sub eax, 0x14
je 0x4ec3aa
jmp case.0x4ebef8.5302
add eax, 0xfffff0a6
sub eax, 2
jb 0x4ec4b5
sub eax, 0x30
je 0x4ec2fe
jmp case.0x4ebef8.5302
cmp eax, 0x119e
jge 0x4ebcec
cmp eax, 0xfbe
jg 0x4ebcce
je 0x4ec2fe
sub eax, 0xfb4
je 0x4ec2fe
sub eax, 5
je 0x4ec2fe
jmp case.0x4ebef8.5302
sub eax, 0xfc8
je 0x4ec2fe
add eax, 0xffffff47
sub eax, 2
jb 0x4ec9f0
jmp case.0x4ebef8.5302
cmp eax, 0x11b3
jg 0x4ebd15
je case.0x4ebef8.5300
add eax, 0xffffee62
sub eax, 2
jb 0x4eca12
sub eax, 0x12
je 0x4ecaf4
jmp case.0x4ebef8.5302
add eax, 0xffffee4c
sub eax, 5
jb 0x4ecaf4
je case.0x4ebef8.5300
jmp case.0x4ebef8.5302
cmp eax, 0x13c6
jg 0x4ebe47
je 0x4ece51
cmp eax, 0x11f9
jg 0x4ebdd1
je 0x4ebfec
cmp eax, 0x11c6
jg 0x4ebd92
je case.0x4ebd6b.4545
add eax, 0xffffee44
cmp eax, 7
ja case.0x4ebef8.5302
jmp dword [eax*4 + 0x4ebd72]
cmp eax, 0x11d1
jg 0x4ebdb8
je 0x4eccc7
sub eax, 0x11cb
je case.0x4ebd6b.4545
sub eax, 5
je case.0x4ebd6b.4545
jmp case.0x4ebef8.5302
sub eax, 0x11d5
je case.0x4ebd6b.4545
sub eax, 0x23
je case.0x4ebef8.5300
jmp case.0x4ebef8.5302
cmp eax, 0x122f
jg 0x4ebe1d
je 0x4ebfec
cmp eax, 0x1220
jg 0x4ebe04
je 0x4ebfec
sub eax, 0x120c
je 0x4ebfec
sub eax, 0xa
je 0x4ebfec
jmp case.0x4ebef8.5302
sub eax, 0x1225
je 0x4ebfec
sub eax, 5
je 0x4ebfec
jmp case.0x4ebef8.5302
add eax, 0xffffec46
sub eax, 3
jb case.0x4ebe73.5074
sub eax, 4
je case.0x4ebe73.5064
dec eax
je case.0x4ebe73.5063
dec eax
je 0x4ece51
jmp case.0x4ebef8.5302
cmp eax, 0x14af
jg 0x4ebedd
je case.0x4ebef8.5300
cmp eax, 0x13d8
jg 0x4ebeb2
je case.0x4ebe73.5063
add eax, 0xffffec39
cmp eax, 0xd
ja case.0x4ebef8.5302
jmp dword [eax*4 + 0x4ebe7a]
sub eax, 0x13d9
je case.0x4ebe73.5064
sub eax, 4
je case.0x4ebe73.5063
dec eax
je case.0x4ebe73.5064
sub eax, 0xa4
je 0x4ec600
jmp case.0x4ebef8.5302
cmp eax, 0x14c8
jg 0x4ebf43
je case.0x4ebef8.5305
add eax, 0xffffeb4c
cmp eax, 0x10
ja case.0x4ebef8.5302
jmp dword [eax*4 + 0x4ebeff]
add eax, 0xffffeb2e
sub eax, 6
jb 0x4ec090
sub eax, 0xe
je 0x4ec0dc
dec eax
sub eax, 5
jb 0x4ec13f
add eax, 0xfffffe3a
sub eax, 4
jb 0x4ecece
jmp case.0x4ebef8.5302
mov bl, 1
jmp 0x4ecf54
cmp dword [esi + 0x81c], 0
je 0x4ebf96
xor ebx, ebx
mov eax, dword [0x66be74]
mov byte [eax], 0x16
jmp 0x4ecf54
mov eax, esi
call fcn.005bfc10
test al, al
je 0x4ebfb0
xor ebx, ebx
mov eax, dword [0x66be74]
mov byte [eax], 0x17
jmp 0x4ecf54
call fcn.004eb27c
test al, al
je 0x4ebfc0
xor ebx, ebx
jmp 0x4ecf54
cmp edi, 0xedd
jne 0x4ebfd5
cmp byte [esi + 0x14e], 0
je 0x4ebfd5
xor ebx, ebx
jmp 0x4ebfd7
mov bl, 1
test bl, bl
jne 0x4ecf54
mov eax, dword [0x66be74]
mov byte [eax], 3
jmp 0x4ecf54
mov eax, dword [esi + 0x5b0]
cmp dword [eax + 0x18], 0
jne 0x4ec007
xor ebx, ebx
mov eax, dword [0x66be74]
mov byte [eax], 0x5e
jmp 0x4ecf54
cmp edi, 0x1216
jne 0x4ec057
call fcn.0064dfa0
mov edi, eax
push 0
push 0x25
push edi
mov eax, dword [esi + 0x5b0]
mov eax, dword [eax + 0x1c]
mov edx, dword [eax]
mov eax, esi
call fcn.005e18e4
mov ecx, eax
xor edx, edx
mov eax, esi
call fcn.005e1d54
cmp dword [edi + 0x18], 0
setg bl
test bl, bl
jne 0x4ec04b
mov eax, dword [0x66be74]
mov byte [eax], 0x36
mov eax, edi
call fcn.0064e5c0
jmp 0x4ecf54
cmp edi, 0x11f9
je 0x4ec06f
cmp edi, 0x120c
je 0x4ec06f
cmp edi, 0x1216
jne 0x4ec089
mov eax, esi
call fcn.005bfc10
test al, al
je 0x4ec089
xor ebx, ebx
mov eax, dword [0x66be74]
mov byte [eax], 0x17
jmp 0x4ecf54
mov bl, 1
jmp 0x4ecf54
mov eax, dword [esi + 0x5b4]
cmp dword [eax + 0x18], 0
jne 0x4ec0ab
xor ebx, ebx
mov eax, dword [0x66be74]
mov byte [eax], 0x5f
jmp 0x4ecf54
cmp edi, 0x14d2
je 0x4ec0bb
cmp edi, 0x14d3
jne 0x4ec0d5
mov eax, esi
call fcn.005bfc10
test al, al
je 0x4ec0d5
xor ebx, ebx
mov eax, dword [0x66be74]
mov byte [eax], 0x17
jmp 0x4ecf54
mov bl, 1
jmp 0x4ecf54
call fcn.004eb27c
test al, al
je 0x4ec0ec
xor ebx, ebx
jmp 0x4ecf54
cmp dword [esi + 0x81c], 0
je 0x4ec104
xor ebx, ebx
mov eax, dword [0x66be74]
mov byte [eax], 0x16
jmp 0x4ecf54
mov eax, esi
call fcn.005bd35c
test al, al
je 0x4ec116
mov bl, 1
jmp 0x4ecf54
mov eax, esi
call fcn.005de8cc
mov eax, dword [esi + 0x5e0]
cmp dword [eax + 0x18], 0
setg bl
test bl, bl
jne 0x4ecf54
mov eax, dword [0x66be74]
mov byte [eax], 7
jmp 0x4ecf54
cmp edi, 0x14ea
je 0x4ec167
cmp edi, 0x14eb
je 0x4ec167
cmp dword [esi + 0x81c], 0
je 0x4ec167
xor ebx, ebx
mov eax, dword [0x66be74]
mov byte [eax], 0x16
jmp 0x4ecf54
mov eax, esi
call fcn.005de8cc
mov eax, dword [esi + 0x5e0]
cmp dword [eax + 0x18], 0
setg bl
test bl, bl
jne 0x4ec18c
mov eax, dword [0x66be74]
mov byte [eax], 0x60
jmp 0x4ecf54
cmp edi, 0x14e7
jne 0x4ec249
call fcn.004eb27c
test al, al
je 0x4ec1a8
xor ebx, ebx
jmp 0x4ecf54
mov eax, esi
call fcn.005bd35c
test al, al
jne 0x4ec1c2
xor ebx, ebx
mov eax, dword [0x66be74]
mov byte [eax], 7
jmp 0x4ecf54
xor ebx, ebx
mov eax, dword [esi + 0x300]
call fcn.00542248
dec eax
cmp eax, 0
jl 0x4ec234
mov dword [ebp - 0xc], eax
mov byte [ebp - 0xd], 0
mov eax, dword [esi + 0x308]
call fcn.00542248
mov edi, eax
dec edi
cmp edi, 0
jl 0x4ec221
mov edx, edi
mov eax, dword [esi + 0x308]
call fcn.00542278
push eax
mov edx, dword [ebp - 0xc]
mov eax, dword [esi + 0x300]
call fcn.00542278
pop edx
call fcn.0053e188
test al, al
je 0x4ec21b
mov byte [ebp - 0xd], 1
jmp 0x4ec221
dec edi
cmp edi, 0xffffffff
jne 0x4ec1ef
cmp byte [ebp - 0xd], 0
jne 0x4ec22b
mov bl, 1
jmp 0x4ec234
dec dword [ebp - 0xc]
cmp dword [ebp - 0xc], 0xffffffff
jne 0x4ec1d8
test bl, bl
jne 0x4ecf54
mov eax, dword [0x66be74]
mov byte [eax], 0x62
jmp 0x4ecf54
mov eax, dword [0x66998c]
mov eax, dword [eax]
mov eax, dword [eax + 0x130]
call fcn.00637f30
test eax, eax
jne 0x4ecf54
xor ebx, ebx
mov eax, dword [0x66be74]
mov byte [eax], 0x61
jmp 0x4ecf54
call fcn.005fad14
mov ebx, eax
mov eax, dword [ebx + 0x1a8]
mov eax, dword [eax + 0x120]
mov edx, dword [eax]
call dword [edx + 0xc]
test eax, eax
jg 0x4ec2a7
mov eax, dword [ebx + 0x1b4]
mov eax, dword [eax + 0x120]
mov edx, dword [eax]
call dword [edx + 0xc]
test eax, eax
jg 0x4ec2a7
xor eax, eax
jmp 0x4ec2a9
mov al, 1
mov ebx, eax
jmp 0x4ecf54
call fcn.005fad14
test byte [eax + 0x20c], 8
setne bl
xor bl, 1
jmp 0x4ecf54
mov eax, dword [0x66930c]
mov eax, dword [eax]
mov bl, byte [eax + 0x171]
jmp 0x4ecf54
mov eax, dword [0x669450]
cmp dword [eax], 0
je 0x4ec2f0
mov eax, dword [0x669450]
mov eax, dword [eax]
cmp dword [eax + 0x18], 0
jg 0x4ec2f7
xor ebx, ebx
jmp 0x4ecf54
mov bl, 1
jmp 0x4ecf54
call fcn.004eb27c
test al, al
je 0x4ec30e
xor ebx, ebx
jmp 0x4ecf54
mov eax, esi
call fcn.005bd35c
test al, al
jne 0x4ec32f
lea ecx, [ebp - 0x28]
lea edx, [esi + 0x258]
mov eax, esi
call fcn.005bbc98
cmp dword [ebp - 0x18], 0
jle 0x4ec336
mov bl, 1
jmp 0x4ecf54
xor ebx, ebx
mov eax, dword [0x66be74]
mov byte [eax], 7
jmp 0x4ecf54
call fcn.004eb27c
test al, al
je 0x4ec355
xor ebx, ebx
jmp 0x4ecf54
mov eax, esi
call fcn.005bd35c
test al, al
jne 0x4ec36f
xor ebx, ebx
mov eax, dword [0x66be74]
mov byte [eax], 7
jmp 0x4ecf54
mov eax, esi
call fcn.005bfb24
test al, al
je 0x4ec389
xor ebx, ebx
mov eax, dword [0x66be74]
mov byte [eax], 0xe
jmp 0x4ecf54
mov eax, esi
call fcn.005bd4e0
test al, al
je 0x4ec3a3
xor ebx, ebx
mov eax, dword [0x66be74]
mov byte [eax], 8
jmp 0x4ecf54
mov bl, 1
jmp 0x4ecf54
mov eax, esi
call fcn.005bd35c
test al, al
jne 0x4ec3c4
xor ebx, ebx
mov eax, dword [0x66be74]
mov byte [eax], 7
jmp 0x4ecf54
mov eax, dword [esi + 0x300]
call fcn.00542248
dec eax
jle 0x4ec3ec
mov eax, esi
call fcn.005bd568
test al, al
jne 0x4ec3ec
xor ebx, ebx
mov eax, dword [0x66be74]
mov byte [eax], 0xb
jmp 0x4ecf54
mov eax, dword [esi + 0x300]
mov edx, dword [eax + 4]
mov edx, dword [edx]
mov eax, dword [eax + 0x14]
cmp edx, dword [eax + 0x10]
jne 0x4ec40e
xor ebx, ebx
mov eax, dword [0x66be74]
mov byte [eax], 0xc
jmp 0x4ecf54
mov eax, dword [0x6699c4]
mov al, byte [eax]
cmp al, byte [esi + 0x344]
je 0x4ec446
movsx eax, byte [esi + 0x344]
cmp ax, 1
jne 0x4ec455
mov ebx, dword [esi + 0x300]
mov eax, dword [ebx + 0x14]
mov ecx, dword [eax + 0x10]
mov eax, dword [ebx + 4]
mov edx, dword [eax]
mov eax, esi
call fcn.005ebd0c
test al, al
jne 0x4ec455
xor ebx, ebx
mov eax, dword [0x66be74]
mov byte [eax], 0xd
jmp 0x4ecf54
mov eax, esi
call fcn.005bfbc0
test al, al
je 0x4ec46f
xor ebx, ebx
mov eax, dword [0x66be74]
mov byte [eax], 0x20
jmp 0x4ecf54
call fcn.004eb27c
mov ebx, eax
xor bl, 1
jmp 0x4ecf54
mov eax, dword [esi + 0x300]
call fcn.00542248
dec eax
jle 0x4ec4a6
mov eax, esi
call fcn.005bd568
test al, al
jne 0x4ec4a6
xor ebx, ebx
mov eax, dword [0x66be74]
mov byte [eax], 0xb
jmp 0x4ecf54
call fcn.004eb27c
mov ebx, eax
xor bl, 1
jmp 0x4ecf54
mov eax, esi
call fcn.005bd35c
test al, al
jne 0x4ec4cf
xor ebx, ebx
mov eax, dword [0x66be74]
mov byte [eax], 7
jmp 0x4ecf54
cmp byte [esi + 0x345], 0
je 0x4ec4e7
xor ebx, ebx
mov eax, dword [0x66be74]
mov byte [eax], 0x67
jmp 0x4ecf54
mov eax, dword [esi + 0x300]
call fcn.00542248
dec eax
jle 0x4ec50f
mov eax, esi
call fcn.005bd568
test al, al
jne 0x4ec50f
xor ebx, ebx
mov eax, dword [0x66be74]
mov byte [eax], 0xb
jmp 0x4ecf54
mov eax, dword [esi + 0x300]
mov edx, dword [eax + 4]
mov ebx, dword [edx]
mov eax, dword [eax + 0x14]
cmp ebx, dword [eax + 0x10]
jne 0x4ec531
xor ebx, ebx
mov eax, dword [0x66be74]
mov byte [eax], 0xc
jmp 0x4ecf54
cmp byte [esi + 0x344], 0
je 0x4ec549
xor ebx, ebx
mov eax, dword [0x66be74]
mov byte [eax], 0xd
jmp 0x4ecf54
mov edx, ebx
mov eax, esi
call fcn.0055e074
test al, al
je 0x4ec565
xor ebx, ebx
mov eax, dword [0x66be74]
mov byte [eax], 0x17
jmp 0x4ecf54
mov eax, dword [esi + 0x300]
mov eax, dword [eax + 0x14]
mov edi, dword [eax + 0x10]
mov edx, edi
mov eax, esi
call fcn.005b85b8
push eax
lea eax, [ebp - 0x48]
push eax
mov ebx, dword [esi + 0x300]
mov ecx, edi
mov eax, dword [ebx + 4]
mov eax, dword [eax]
xor edx, edx
call fcn.0053ded4
lea edx, [ebp - 0x48]
xor ecx, ecx
mov eax, esi
call fcn.005bfd78
test al, al
je 0x4ec5b2
xor ebx, ebx
mov eax, dword [0x66be74]
mov byte [eax], 0xf
jmp 0x4ecf54
call fcn.004eb8c8
test al, al
je 0x4ec5ca
xor ebx, ebx
mov eax, dword [0x66be74]
mov byte [eax], 0x10
jmp 0x4ecf54
call fcn.004eb27c
mov ebx, eax
xor bl, 1
jmp 0x4ecf54
test esi, esi
je 0x4ec5f2
mov al, byte [0x4ecf88]
push eax
xor ecx, ecx
xor edx, edx
mov eax, esi
call fcn.005bf750
test eax, eax
jg 0x4ec5f9
xor ebx, ebx
jmp 0x4ecf54
mov bl, 1
jmp 0x4ecf54
mov eax, esi
call fcn.005bd35c
test al, al
jne 0x4ec62d
mov eax, dword [esi + 0x318]
cmp dword [eax + 0x18], 0
jle 0x4ec61e
mov bl, 1
jmp 0x4ecf54
xor ebx, ebx
mov eax, dword [0x66be74]
mov byte [eax], 7
jmp 0x4ecf54
mov eax, esi
call fcn.005bd4e0
test al, al
je 0x4ec647
xor ebx, ebx
mov eax, dword [0x66be74]
mov byte [eax], 8
jmp 0x4ecf54
mov bl, 1
jmp 0x4ecf54
cmp byte [esi + 0x45c], 0
je 0x4ec666
xor ebx, ebx
mov eax, dword [0x66be74]
mov byte [eax], 0x11
jmp 0x4ecf54
mov eax, esi
call fcn.005bd35c
test al, al
jne 0x4ec693
mov eax, dword [esi + 0x318]
cmp dword [eax + 0x18], 0
jle 0x4ec684
mov bl, 1
jmp 0x4ecf54
xor ebx, ebx
mov eax, dword [0x66be74]
mov byte [eax], 7
jmp 0x4ecf54
mov eax, esi
call fcn.005bd4e0
test al, al
je 0x4ec6ad
xor ebx, ebx
mov eax, dword [0x66be74]
mov byte [eax], 8
jmp 0x4ecf54
mov bl, 1
jmp 0x4ecf54
mov eax, esi
call fcn.005bd4e0
test al, al
je 0x4ec6ce
xor ebx, ebx
mov eax, dword [0x66be74]
mov byte [eax], 8
jmp 0x4ecf54
test byte [0x66be54], 1
je 0x4ec74c
call fcn.00530afc
xor edx, edx
call fcn.0052fc04
call fcn.00530afc
call fcn.0052fdd8
mov edx, dword [ebp + 8]
mov edx, dword [edx + 8]
mov edx, dword [edx - 4]
mov byte [edx + 0xc], al
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 4]
mov byte [eax + 0xd], 0xff
call fcn.00530afc
cmp byte [eax + 0x1c], 0
je 0x4ec73d
and dword [0x66be54], 0xfffffffe
call fcn.00530afc
call fcn.0052fa68
mov word [ebp - 0xf], ax
test byte [ebp - 0xf], 2
je 0x4ec742
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 4]
mov dl, byte [ebp - 0xe]
mov byte [eax + 0xd], dl
jmp 0x4ec742
call fcn.004fe3f4
call fcn.00530afc
call fcn.0052fdc4
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 4]
cmp byte [eax + 0xc], 0
jne 0x4ec775
call fcn.00530afc
cmp dword [eax + 0x24], 0
jne 0x4ec775
call fcn.00530afc
cmp dword [eax + 0x38], 0
jne 0x4ec775
xor ebx, ebx
jmp 0x4ec777
mov bl, 1
test bl, bl
jne 0x4ec788
mov eax, dword [0x66be74]
mov byte [eax], 9
jmp 0x4ecf54
cmp edi, 0xd35
je 0x4ec7ac
cmp edi, 0xd36
je 0x4ec7ac
cmp edi, 0xd37
je 0x4ec7ac
cmp edi, 0xd38
jne 0x4ecf54
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 4]
cmp byte [eax + 0xd], 0xff
je 0x4ec80b
mov eax, esi
call fcn.005bd35c
test al, al
jne 0x4ec80b
mov eax, esi
call fcn.005bd394
test al, al
je 0x4ec80b
cmp edi, 0xd36
jne 0x4ecf54
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 4]
mov al, byte [eax + 0xd]
sub al, 1
je 0x4ec7f1
sub al, 2
jne 0x4ec80b
mov edx, dword [esi + 0x258]
mov eax, esi
call fcn.005ebd44
cmp dword [eax + 0x275c], 0
jle 0x4ecf54
xor ebx, ebx
jmp 0x4ecf54
cmp byte [esi + 0x45c], 0
je 0x4ec82a
xor ebx, ebx
mov eax, dword [0x66be74]
mov byte [eax], 0x11
jmp 0x4ecf54
call fcn.00530afc
call fcn.0052fbc0
test al, al
je 0x4ec861
call fcn.00530afc
call fcn.0052f57c
call fcn.0052e048
test al, al
je 0x4ec870
call fcn.00530afc
call fcn.0052f57c
mov eax, dword [eax + 8]
call fcn.005bf884
test al, al
jne 0x4ec870
xor ebx, ebx
mov eax, dword [0x66be74]
mov byte [eax], 0x12
jmp 0x4ecf54
mov eax, esi
call fcn.005bd4e0
test al, al
je 0x4ec88a
xor ebx, ebx
mov eax, dword [0x66be74]
mov byte [eax], 8
jmp 0x4ecf54
call fcn.004eb27c
mov ebx, eax
xor bl, 1
jmp 0x4ecf54
cmp dword [esi + 0x4b0], 0
setge bl
test bl, bl
jne 0x4ecf54
mov eax, dword [0x66be74]
mov byte [eax], 5
jmp 0x4ecf54
mov eax, dword [esi + 0x4ac]
mov eax, dword [eax + 0x18]
dec eax
cmp eax, dword [esi + 0x4b0]
setg bl
test bl, bl
jne 0x4ecf54
mov eax, dword [0x66be74]
mov byte [eax], 6
jmp 0x4ecf54
mov eax, dword [0x669134]
cmp byte [eax], 2
jne 0x4ec8f9
xor ebx, ebx
mov eax, dword [0x66be74]
mov byte [eax], 0x15
jmp 0x4ecf54
call fcn.004eb27c
mov ebx, eax
xor bl, 1
jmp 0x4ecf54
mov eax, dword [0x669134]
cmp byte [eax], 2
jne 0x4ec921
xor ebx, ebx
mov eax, dword [0x66be74]
mov byte [eax], 0x15
jmp 0x4ecf54
mov eax, dword [0x669978]
cmp byte [eax], 0
jne 0x4ec935
mov eax, dword [0x6690f4]
cmp byte [eax], 0
je 0x4ec944
call fcn.004eb27c
mov ebx, eax
xor bl, 1
jmp 0x4ecf54
xor ebx, ebx
mov eax, dword [0x66be74]
mov byte [eax], 0x4a
jmp 0x4ecf54
cmp dword [esi + 0x81c], 0
je 0x4ec96b
xor ebx, ebx
mov eax, dword [0x66be74]
mov byte [eax], 0x16
jmp 0x4ecf54
cmp byte [esi + 0x344], 0
je 0x4ec983
xor ebx, ebx
mov eax, dword [0x66be74]
mov byte [eax], 0xd
jmp 0x4ecf54
mov eax, esi
call fcn.005c0d4c
mov dword [ebp - 0xc], eax
mov edx, dword [ebp - 0xc]
mov eax, esi
call fcn.0055e074
test al, al
je 0x4ec9aa
xor ebx, ebx
mov eax, dword [0x66be74]
mov byte [eax], 0x17
jmp 0x4ecf54
mov eax, dword [esi + 0x5bc]
cmp dword [eax + 0x18], 0
jne 0x4ec9e1
mov eax, dword [esi + 0xb0]
mov eax, dword [eax + 0x1c]
mov edx, dword [ebp - 0xc]
mov eax, dword [eax + edx*4]
xor edx, edx
call fcn.0054c314
sub ax, 0x21
jae 0x4ec9e1
xor ebx, ebx
mov eax, dword [0x66be74]
mov byte [eax], 0x6b
jmp 0x4ecf54
call fcn.004eb27c
mov ebx, eax
xor bl, 1
jmp 0x4ecf54
cmp byte [esi + 0x14e], 0
je 0x4eca0b
mov eax, dword [0x6690d8]
cmp byte [eax + 0x6e], 4
jne 0x4eca0b
xor ebx, ebx
jmp 0x4ecf54
mov bl, 1
jmp 0x4ecf54
cmp dword [esi + 0x81c], 0
jne 0x4eca4e
call fcn.004eb27c
test al, al
je 0x4eca2b
xor ebx, ebx
jmp 0x4ecf54
mov eax, esi
call fcn.005e0f3c
cmp dword [eax + 0x24], 0
setg bl
test bl, bl
jne 0x4ecf54
mov eax, dword [0x66be74]
mov byte [eax], 0x3c
jmp 0x4ecf54
xor ebx, ebx
jmp 0x4ecf54
mov eax, esi
call fcn.005bd524
test al, al
je 0x4eca6f
xor ebx, ebx
mov eax, dword [0x66be74]
mov byte [eax], 8
jmp 0x4ecf54
cmp dword [esi + 0x81c], 0
je 0x4eca87
xor ebx, ebx
mov eax, dword [0x66be74]
mov byte [eax], 0x16
jmp 0x4ecf54
call fcn.004eb27c
mov ebx, eax
xor bl, 1
test bl, bl
je 0x4ecf54
sub edi, 0x11b3
je 0x4ecab8
sub edi, 6
je 0x4ecab8
sub edi, 0x3f
je 0x4ecad6
sub edi, 0x2b7
je 0x4ecad6
jmp 0x4ecf54
mov eax, esi
call fcn.005bfbc0
test al, al
je 0x4ecf54
xor ebx, ebx
mov eax, dword [0x66be74]
mov byte [eax], 0x20
jmp 0x4ecf54
mov eax, esi
call fcn.005bfc10
test al, al
je 0x4ecf54
xor ebx, ebx
mov eax, dword [0x66be74]
mov byte [eax], 0x17
jmp 0x4ecf54
mov eax, esi
call fcn.005e0f3c
cmp dword [eax + 0x24], 0
setg bl
test bl, bl
jne 0x4ecb13
mov eax, dword [0x66be74]
mov byte [eax], 0x3c
jmp 0x4ecf54
cmp edi, 0x11b8
jne 0x4ecb2b
call fcn.004eb27c
test al, al
je 0x4ecb2b
xor ebx, ebx
jmp 0x4ecf54
cmp edi, 0x11b8
jne 0x4ecb4d
mov eax, esi
call fcn.005bd35c
test al, al
jne 0x4ecb4d
xor ebx, ebx
mov eax, dword [0x66be74]
mov byte [eax], 7
jmp 0x4ecf54
cmp edi, 0x11b2
je 0x4ecb65
cmp edi, 0x11b4
je 0x4ecb65
cmp edi, 0x11b8
jne 0x4ecb83
mov eax, dword [0x669668]
mov eax, dword [eax]
call fcn.00637f30
dec eax
jle 0x4ecb83
xor ebx, ebx
mov eax, dword [0x66be74]
mov byte [eax], 0x5b
jmp 0x4ecf54
cmp edi, 0x11b2
je 0x4ecba7
cmp edi, 0x11b4
je 0x4ecba7
cmp edi, 0x11b5
je 0x4ecba7
cmp edi, 0x11b8
jne 0x4ecf54
mov eax, dword [0x669668]
mov eax, dword [eax]
call fcn.00637f30
test eax, eax
jne 0x4ecf54
xor ebx, ebx
mov eax, dword [0x66be74]
mov byte [eax], 0x63
jmp 0x4ecf54
mov eax, esi
call fcn.005bfbc0
test al, al
je 0x4ecbe4
xor ebx, ebx
mov eax, dword [0x66be74]
mov byte [eax], 0x20
jmp 0x4ecf54
mov bl, 1
jmp 0x4ecf54
mov eax, dword [esi + 0x5a0]
cmp dword [eax + 0x18], 1
sete bl
test bl, bl
jne 0x4ecf54
mov eax, dword [0x66be74]
mov byte [eax], 0x1e
jmp 0x4ecf54
mov eax, dword [esi + 0x5a0]
cmp dword [eax + 0x18], 0
setg bl
jmp 0x4ecf54
xor ebx, ebx
mov eax, dword [esi + 0x5c4]
cmp eax, 0
jl 0x4ecc5a
mov dword [ebp - 0xc], eax
mov eax, dword [esi + 0x5c0]
mov eax, dword [eax + 0x1c]
mov edx, dword [ebp - 0xc]
mov edx, dword [eax + edx*4]
mov eax, dword [esi + 0x598]
call fcn.0064e36c
test al, al
je 0x4ecc51
mov bl, 1
jmp 0x4ecc5a
dec dword [ebp - 0xc]
cmp dword [ebp - 0xc], 0xffffffff
jne 0x4ecc2f
test bl, bl
jne 0x4ecf54
mov eax, dword [0x66be74]
mov byte [eax], 0x1c
jmp 0x4ecf54
xor ebx, ebx
mov eax, dword [esi + 0x5c4]
inc eax
mov edx, dword [esi + 0x5c0]
mov edi, dword [edx + 0x18]
dec edi
sub edi, eax
jl 0x4eccb2
inc edi
mov dword [ebp - 0xc], eax
mov eax, dword [esi + 0x5c0]
mov eax, dword [eax + 0x1c]
mov edx, dword [ebp - 0xc]
mov edx, dword [eax + edx*4]
mov eax, dword [esi + 0x598]
call fcn.0064e36c
test al, al
je 0x4eccac
mov bl, 1
jmp 0x4eccb2
inc dword [ebp - 0xc]
dec edi
jne 0x4ecc8a
test bl, bl
jne 0x4ecf54
mov eax, dword [0x66be74]
mov byte [eax], 0x1c
jmp 0x4ecf54
mov edi, dword [esi + 0x5a0]
xor ebx, ebx
mov eax, dword [edi + 0x18]
dec eax
cmp eax, 0
jl 0x4ecd4f
mov dword [ebp - 0xc], eax
push 0
mov eax, dword [edi + 0x1c]
mov edx, dword [ebp - 0xc]
mov eax, dword [eax + edx*4]
mov eax, dword [eax + 0x3c]
lea ecx, [ebp - 8]
lea edx, [ebp - 4]
call fcn.0053fe20
cmp dword [ebp - 8], 0
je 0x4ecd12
push dword [ebp - 4]
push 0x4ecf90
push dword [ebp - 8]
lea eax, [ebp - 4]
mov edx, 3
call fcn.00403b88
lea eax, [ebp - 0x4c]
push eax
mov eax, dword [edi + 0x1c]
mov edx, dword [ebp - 0xc]
mov edx, dword [eax + edx*4]
mov eax, esi
call fcn.005e18e4
mov edx, eax
mov cl, byte [0x4ecf94]
mov eax, esi
call fcn.005bc4d8
mov eax, dword [ebp - 0x4c]
mov edx, dword [ebp - 4]
call fcn.00403bd0
je 0x4ecd46
mov bl, 1
jmp 0x4ecd4f
dec dword [ebp - 0xc]
cmp dword [ebp - 0xc], 0xffffffff
jne 0x4eccdb
test bl, bl
jne 0x4ecf54
mov eax, dword [0x66be74]
mov byte [eax], 0x1f
jmp 0x4ecf54
cmp dword [esi + 0x81c], 0
je 0x4ecd7c
xor ebx, ebx
mov eax, dword [0x66be74]
mov byte [eax], 0x16
jmp 0x4ecf54
call fcn.004eb27c
mov ebx, eax
xor bl, 1
jmp 0x4ecf54
mov eax, dword [esi + 0x5a4]
mov eax, dword [eax + 0x18]
test eax, eax
jne 0x4ecda7
xor ebx, ebx
mov eax, dword [0x66be74]
mov byte [eax], 0x4d
jmp 0x4ecf54
dec eax
jle 0x4ecdb9
xor ebx, ebx
mov eax, dword [0x66be74]
mov byte [eax], 0x20
jmp 0x4ecf54
mov bl, 1
jmp 0x4ecf54
mov eax, dword [esi + 0x5a8]
mov eax, dword [eax + 0x18]
test eax, eax
jne 0x4ecddc
xor ebx, ebx
mov eax, dword [0x66be74]
mov byte [eax], 0x4e
jmp 0x4ecf54
dec eax
jle 0x4ecdee
xor ebx, ebx
mov eax, dword [0x66be74]
mov byte [eax], 0x20
jmp 0x4ecf54
mov bl, 1
jmp 0x4ecf54
mov eax, dword [esi + 0x5a4]
cmp dword [eax + 0x18], 0
je 0x4ece0d
mov eax, dword [esi + 0x5a8]
cmp dword [eax + 0x18], 0
jle 0x4ece1c
xor ebx, ebx
mov eax, dword [0x66be74]
mov byte [eax], 0x4d
jmp 0x4ecf54
mov bl, 1
jmp 0x4ecf54
mov eax, dword [esi + 0x5a8]
cmp dword [eax + 0x18], 0
je 0x4ece3b
mov eax, dword [esi + 0x5a4]
cmp dword [eax + 0x18], 0
jle 0x4ece4a
xor ebx, ebx
mov eax, dword [0x66be74]
mov byte [eax], 0x4e
jmp 0x4ecf54
mov bl, 1
jmp 0x4ecf54
mov eax, dword [esi + 0x5ac]
cmp dword [eax + 0x18], 0
jne 0x4ece6c
xor ebx, ebx
mov eax, dword [0x66be74]
mov byte [eax], 0x4f
jmp 0x4ecf54
mov bl, 1
jmp 0x4ecf54
mov eax, esi
call fcn.005dec38
mov eax, dword [esi + 0x5dc]
cmp dword [eax + 0x18], 0
setg bl
test bl, bl
jne 0x4ece98
mov eax, dword [0x66be74]
mov byte [eax], 0x5c
jmp 0x4ecf54
cmp edi, 0x14b9
je 0x4eceac
cmp edi, 0x14c8
jne 0x4ecf54
mov eax, dword [0x6694e0]
mov eax, dword [eax]
call fcn.00637f30
dec eax
jle 0x4ecf54
xor ebx, ebx
mov eax, dword [0x66be74]
mov byte [eax], 0x5d
jmp 0x4ecf54
xor ebx, ebx
mov eax, dword [esi + 0x12c]
dec eax
cmp eax, 0
jl 0x4ecf54
mov dword [ebp - 0xc], eax
mov edx, dword [ebp - 0xc]
mov eax, esi
call fcn.005f7cc8
test al, al
je 0x4ecf3f
mov eax, dword [esi + 0xb0]
mov eax, dword [eax + 0x1c]
mov edx, dword [ebp - 0xc]
mov eax, dword [eax + edx*4]
mov al, byte [eax + 0x3d]
cmp edi, 0x16b3
je 0x4ecf13
cmp edi, 0x16b5
je 0x4ecf13
xor edx, edx
jmp 0x4ecf15
mov dl, 1
cmp al, dl
jne 0x4ecf3f
cmp edi, 0x16b4
je 0x4ecf3b
cmp edi, 0x16b5
je 0x4ecf3b
mov edx, dword [ebp - 0xc]
mov eax, dword [esi + 0x5b8]
call fcn.0064e36c
test al, al
je 0x4ecf3f
mov bl, 1
jmp 0x4ecf54
dec dword [ebp - 0xc]
cmp dword [ebp - 0xc], 0xffffffff
jne 0x4ecedf
jmp 0x4ecf54
call fcn.004eb27c
mov ebx, eax
xor bl, 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4ecf7e
lea eax, [ebp - 0x4c]
call fcn.00403880
lea eax, [ebp - 8]
mov edx, 2
call fcn.00403898
ret