Function at 0x4f5414
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 0x4f6a2f
push dword fs:[eax]
mov dword fs:[eax], esp
call fcn.004e0984
mov esi, eax
mov eax, edi
cmp eax, 0x11c4
jg 0x4f5480
je 0x4f54b8
cmp eax, 0xe62
jg 0x4f546c
je 0x4f54b8
sub eax, 0xd2a
je 0x4f54b8
sub eax, 0x5a
je 0x4f54bf
add eax, 0xffffffe7
sub eax, 2
jb 0x4f54b8
jmp 0x4f556e
sub eax, 0x1083
je 0x4f54b8
add eax, 0xfffffffd
sub eax, 0xd
jb 0x4f54b8
jmp 0x4f556e
cmp eax, 0x145a
jg 0x4f54a7
je 0x4f5523
sub eax, 0x13f1
je 0x4f54b8
sub eax, 0x5f
je 0x4f54f6
sub eax, 5
je 0x4f5523
jmp 0x4f556e
add eax, 0xffffeba4
sub eax, 2
jb 0x4f5523
dec eax
jne 0x4f556e
mov bl, 1
jmp 0x4f6a0c
call fcn.00536b48
call fcn.00535c0c
test al, al
je 0x4f54e7
call fcn.00536b48
call fcn.005355d0
call fcn.005340f0
test al, al
je 0x4f54e7
mov bl, 1
jmp 0x4f6a0c
xor ebx, ebx
mov eax, dword [0x672e90]
mov byte [eax], 0x12
jmp 0x4f6a0c
test esi, esi
je 0x4f5505
mov eax, dword [0x66f7d4]
cmp dword [eax + 8], 0
jne 0x4f5514
xor ebx, ebx
mov eax, dword [0x672e90]
mov byte [eax], 0x48
jmp 0x4f6a0c
call fcn.004f4d18
mov ebx, eax
xor bl, 1
jmp 0x4f6a0c
mov eax, dword [0x66fc50]
cmp byte [eax + 0x1a], 0
je 0x4f5558
mov al, 0xa
call fcn.0048cc68
test al, al
je 0x4f5558
mov eax, dword [0x66ffe0]
cmp dword [eax], 0
je 0x4f5558
mov eax, dword [0x66ffe0]
mov eax, dword [eax]
call fcn.00512d7c
mov eax, dword [eax + 0x2c]
cmp dword [eax + 0x24], 0
jne 0x4f5567
xor ebx, ebx
mov eax, dword [0x672e90]
mov byte [eax], 0x48
jmp 0x4f6a0c
mov bl, 1
jmp 0x4f6a0c
test esi, esi
jne 0x4f5579
xor ebx, ebx
jmp 0x4f6a0c
mov eax, edi
cmp eax, 0x11ba
jg 0x4f57e6
je 0x4f65ac
cmp eax, 0xe74
jg 0x4f56ba
je 0x4f6091
cmp eax, 0xd98
jg 0x4f5644
je 0x4f62ca
cmp eax, 0xd20
jg 0x4f5602
je 0x4f616c
cmp eax, 0xc08
jge 0x4f55db
sub eax, 0xbba
je 0x4f5a36
sub eax, 0x14
je 0x4f5a36
jmp case.0x4f59b0.5302
add eax, 0xfffff3f8
sub eax, 4
jb 0x4f5a36
sub eax, 0x74
je 0x4f5a2f
sub eax, 0x8c
je 0x4f60b8
jmp case.0x4f59b0.5302
cmp eax, 0xd5c
jg 0x4f562b
je 0x4f60b8
add eax, 0xfffff2cc
sub eax, 5
jb 0x4f616c
sub eax, 0xf
je 0x4f616c
jmp case.0x4f59b0.5302
sub eax, 0xd70
je 0x4f6106
sub eax, 5
je 0x4f6106
jmp case.0x4f59b0.5302
cmp eax, 0xe55
jg 0x4f5693
je 0x4f5d2a
cmp eax, 0xdb7
jg 0x4f5677
je 0x4f63c0
sub eax, 0xdac
je 0x4f5dfd
sub eax, 0xa
je 0x4f6398
jmp case.0x4f59b0.5302
sub eax, 0xe0b
je 0x4f640b
add eax, 0xffffffd3
sub eax, 2
jb 0x4f5a2f
jmp case.0x4f59b0.5302
sub eax, 0xe56
je 0x4f5d68
sub eax, 8
je 0x4f5d7f
dec eax
je 0x4f5d91
dec eax
je 0x4f60b8
jmp case.0x4f59b0.5302
cmp eax, 0xfa0
jg 0x4f5759
je 0x4f5db6
cmp eax, 0xf28
jg 0x4f5717
je 0x4f6351
cmp eax, 0xee2
jg 0x4f56fe
je 0x4f5a36
sub eax, 0xe9c
je 0x4f5a2f
sub eax, 0x41
je 0x4f5a36
jmp case.0x4f59b0.5302
sub eax, 0xf00
je 0x4f6351
sub eax, 0x14
je 0x4f6370
jmp case.0x4f59b0.5302
cmp eax, 0xf55
jg 0x4f573d
je 0x4f5f36
sub eax, 0xf3c
je 0x4f6370
sub eax, 0x14
je 0x4f5e62
jmp case.0x4f59b0.5302
add eax, 0xfffff0a6
sub eax, 2
jb 0x4f5f6d
sub eax, 0x30
je 0x4f5db6
jmp case.0x4f59b0.5302
cmp eax, 0x119e
jge 0x4f57a4
cmp eax, 0xfbe
jg 0x4f5786
je 0x4f5db6
sub eax, 0xfb4
je 0x4f5db6
sub eax, 5
je 0x4f5db6
jmp case.0x4f59b0.5302
sub eax, 0xfc8
je 0x4f5db6
add eax, 0xffffff47
sub eax, 2
jb 0x4f64a8
jmp case.0x4f59b0.5302
cmp eax, 0x11b3
jg 0x4f57cd
je case.0x4f59b0.5300
add eax, 0xffffee62
sub eax, 2
jb 0x4f64ca
sub eax, 0x12
je 0x4f65ac
jmp case.0x4f59b0.5302
add eax, 0xffffee4c
sub eax, 5
jb 0x4f65ac
je case.0x4f59b0.5300
jmp case.0x4f59b0.5302
cmp eax, 0x13c6
jg 0x4f58ff
je 0x4f6909
cmp eax, 0x11f9
jg 0x4f5889
je 0x4f5aa4
cmp eax, 0x11c6
jg 0x4f584a
je case.0x4f5823.4545
add eax, 0xffffee44
cmp eax, 7
ja case.0x4f59b0.5302
jmp dword [eax*4 + 0x4f582a]
cmp eax, 0x11d1
jg 0x4f5870
je 0x4f677f
sub eax, 0x11cb
je case.0x4f5823.4545
sub eax, 5
je case.0x4f5823.4545
jmp case.0x4f59b0.5302
sub eax, 0x11d5
je case.0x4f5823.4545
sub eax, 0x23
je case.0x4f59b0.5300
jmp case.0x4f59b0.5302
cmp eax, 0x122f
jg 0x4f58d5
je 0x4f5aa4
cmp eax, 0x1220
jg 0x4f58bc
je 0x4f5aa4
sub eax, 0x120c
je 0x4f5aa4
sub eax, 0xa
je 0x4f5aa4
jmp case.0x4f59b0.5302
sub eax, 0x1225
je 0x4f5aa4
sub eax, 5
je 0x4f5aa4
jmp case.0x4f59b0.5302
add eax, 0xffffec46
sub eax, 3
jb case.0x4f592b.5074
sub eax, 4
je case.0x4f592b.5064
dec eax
je case.0x4f592b.5063
dec eax
je 0x4f6909
jmp case.0x4f59b0.5302
cmp eax, 0x14af
jg 0x4f5995
je case.0x4f59b0.5300
cmp eax, 0x13d8
jg 0x4f596a
je case.0x4f592b.5063
add eax, 0xffffec39
cmp eax, 0xd
ja case.0x4f59b0.5302
jmp dword [eax*4 + 0x4f5932]
sub eax, 0x13d9
je case.0x4f592b.5064
sub eax, 4
je case.0x4f592b.5063
dec eax
je case.0x4f592b.5064
sub eax, 0xa4
je 0x4f60b8
jmp case.0x4f59b0.5302
cmp eax, 0x14c8
jg 0x4f59fb
je case.0x4f59b0.5305
add eax, 0xffffeb4c
cmp eax, 0x10
ja case.0x4f59b0.5302
jmp dword [eax*4 + 0x4f59b7]
add eax, 0xffffeb2e
sub eax, 6
jb 0x4f5b48
sub eax, 0xe
je 0x4f5b94
dec eax
sub eax, 5
jb 0x4f5bf7
add eax, 0xfffffe3a
sub eax, 4
jb 0x4f6986
jmp case.0x4f59b0.5302
mov bl, 1
jmp 0x4f6a0c
cmp dword [esi + 0x81c], 0
je 0x4f5a4e
xor ebx, ebx
mov eax, dword [0x672e90]
mov byte [eax], 0x16
jmp 0x4f6a0c
mov eax, esi
call fcn.005c4940
test al, al
je 0x4f5a68
xor ebx, ebx
mov eax, dword [0x672e90]
mov byte [eax], 0x17
jmp 0x4f6a0c
call fcn.004f4d18
test al, al
je 0x4f5a78
xor ebx, ebx
jmp 0x4f6a0c
cmp edi, 0xedd
jne 0x4f5a8d
cmp byte [esi + 0x14e], 0
je 0x4f5a8d
xor ebx, ebx
jmp 0x4f5a8f
mov bl, 1
test bl, bl
jne 0x4f6a0c
mov eax, dword [0x672e90]
mov byte [eax], 3
jmp 0x4f6a0c
mov eax, dword [esi + 0x5b0]
cmp dword [eax + 0x18], 0
jne 0x4f5abf
xor ebx, ebx
mov eax, dword [0x672e90]
mov byte [eax], 0x5e
jmp 0x4f6a0c
cmp edi, 0x1216
jne 0x4f5b0f
call fcn.0064e78c
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.005e5ac8
mov ecx, eax
xor edx, edx
mov eax, esi
call fcn.005e5f38
cmp dword [edi + 0x18], 0
setg bl
test bl, bl
jne 0x4f5b03
mov eax, dword [0x672e90]
mov byte [eax], 0x36
mov eax, edi
call fcn.0064edac
jmp 0x4f6a0c
cmp edi, 0x11f9
je 0x4f5b27
cmp edi, 0x120c
je 0x4f5b27
cmp edi, 0x1216
jne 0x4f5b41
mov eax, esi
call fcn.005c4940
test al, al
je 0x4f5b41
xor ebx, ebx
mov eax, dword [0x672e90]
mov byte [eax], 0x17
jmp 0x4f6a0c
mov bl, 1
jmp 0x4f6a0c
mov eax, dword [esi + 0x5b4]
cmp dword [eax + 0x18], 0
jne 0x4f5b63
xor ebx, ebx
mov eax, dword [0x672e90]
mov byte [eax], 0x5f
jmp 0x4f6a0c
cmp edi, 0x14d2
je 0x4f5b73
cmp edi, 0x14d3
jne 0x4f5b8d
mov eax, esi
call fcn.005c4940
test al, al
je 0x4f5b8d
xor ebx, ebx
mov eax, dword [0x672e90]
mov byte [eax], 0x17
jmp 0x4f6a0c
mov bl, 1
jmp 0x4f6a0c
call fcn.004f4d18
test al, al
je 0x4f5ba4
xor ebx, ebx
jmp 0x4f6a0c
cmp dword [esi + 0x81c], 0
je 0x4f5bbc
xor ebx, ebx
mov eax, dword [0x672e90]
mov byte [eax], 0x16
jmp 0x4f6a0c
mov eax, esi
call fcn.005c208c
test al, al
je 0x4f5bce
mov bl, 1
jmp 0x4f6a0c
mov eax, esi
call fcn.005e2cb0
mov eax, dword [esi + 0x5e0]
cmp dword [eax + 0x18], 0
setg bl
test bl, bl
jne 0x4f6a0c
mov eax, dword [0x672e90]
mov byte [eax], 7
jmp 0x4f6a0c
cmp edi, 0x14ea
je 0x4f5c1f
cmp edi, 0x14eb
je 0x4f5c1f
cmp dword [esi + 0x81c], 0
je 0x4f5c1f
xor ebx, ebx
mov eax, dword [0x672e90]
mov byte [eax], 0x16
jmp 0x4f6a0c
mov eax, esi
call fcn.005e2cb0
mov eax, dword [esi + 0x5e0]
cmp dword [eax + 0x18], 0
setg bl
test bl, bl
jne 0x4f5c44
mov eax, dword [0x672e90]
mov byte [eax], 0x60
jmp 0x4f6a0c
cmp edi, 0x14e7
jne 0x4f5d01
call fcn.004f4d18
test al, al
je 0x4f5c60
xor ebx, ebx
jmp 0x4f6a0c
mov eax, esi
call fcn.005c208c
test al, al
jne 0x4f5c7a
xor ebx, ebx
mov eax, dword [0x672e90]
mov byte [eax], 7
jmp 0x4f6a0c
xor ebx, ebx
mov eax, dword [esi + 0x300]
call fcn.00547ce4
dec eax
cmp eax, 0
jl 0x4f5cec
mov dword [ebp - 0xc], eax
mov byte [ebp - 0xd], 0
mov eax, dword [esi + 0x308]
call fcn.00547ce4
mov edi, eax
dec edi
cmp edi, 0
jl 0x4f5cd9
mov edx, edi
mov eax, dword [esi + 0x308]
call fcn.00547d14
push eax
mov edx, dword [ebp - 0xc]
mov eax, dword [esi + 0x300]
call fcn.00547d14
pop edx
call fcn.00543cc0
test al, al
je 0x4f5cd3
mov byte [ebp - 0xd], 1
jmp 0x4f5cd9
dec edi
cmp edi, 0xffffffff
jne 0x4f5ca7
cmp byte [ebp - 0xd], 0
jne 0x4f5ce3
mov bl, 1
jmp 0x4f5cec
dec dword [ebp - 0xc]
cmp dword [ebp - 0xc], 0xffffffff
jne 0x4f5c90
test bl, bl
jne 0x4f6a0c
mov eax, dword [0x672e90]
mov byte [eax], 0x62
jmp 0x4f6a0c
mov eax, dword [0x66fe60]
mov eax, dword [eax]
mov eax, dword [eax + 0x130]
call fcn.00637dac
test eax, eax
jne 0x4f6a0c
xor ebx, ebx
mov eax, dword [0x672e90]
mov byte [eax], 0x61
jmp 0x4f6a0c
call fcn.005fe7e0
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 0x4f5d5f
mov eax, dword [ebx + 0x1b4]
mov eax, dword [eax + 0x120]
mov edx, dword [eax]
call dword [edx + 0xc]
test eax, eax
jg 0x4f5d5f
xor eax, eax
jmp 0x4f5d61
mov al, 1
mov ebx, eax
jmp 0x4f6a0c
call fcn.005fe7e0
test byte [eax + 0x20c], 8
setne bl
xor bl, 1
jmp 0x4f6a0c
mov eax, dword [0x66ee78]
mov eax, dword [eax]
mov bl, byte [eax + 0x171]
jmp 0x4f6a0c
mov eax, dword [0x66f1a8]
cmp dword [eax], 0
je 0x4f5da8
mov eax, dword [0x66f1a8]
mov eax, dword [eax]
cmp dword [eax + 0x18], 0
jg 0x4f5daf
xor ebx, ebx
jmp 0x4f6a0c
mov bl, 1
jmp 0x4f6a0c
call fcn.004f4d18
test al, al
je 0x4f5dc6
xor ebx, ebx
jmp 0x4f6a0c
mov eax, esi
call fcn.005c208c
test al, al
jne 0x4f5de7
lea ecx, [ebp - 0x28]
lea edx, [esi + 0x258]
mov eax, esi
call fcn.005c0a30
cmp dword [ebp - 0x18], 0
jle 0x4f5dee
mov bl, 1
jmp 0x4f6a0c
xor ebx, ebx
mov eax, dword [0x672e90]
mov byte [eax], 7
jmp 0x4f6a0c
call fcn.004f4d18
test al, al
je 0x4f5e0d
xor ebx, ebx
jmp 0x4f6a0c
mov eax, esi
call fcn.005c208c
test al, al
jne 0x4f5e27
xor ebx, ebx
mov eax, dword [0x672e90]
mov byte [eax], 7
jmp 0x4f6a0c
mov eax, esi
call fcn.005c4854
test al, al
je 0x4f5e41
xor ebx, ebx
mov eax, dword [0x672e90]
mov byte [eax], 0xe
jmp 0x4f6a0c
mov eax, esi
call fcn.005c2210
test al, al
je 0x4f5e5b
xor ebx, ebx
mov eax, dword [0x672e90]
mov byte [eax], 8
jmp 0x4f6a0c
mov bl, 1
jmp 0x4f6a0c
mov eax, esi
call fcn.005c208c
test al, al
jne 0x4f5e7c
xor ebx, ebx
mov eax, dword [0x672e90]
mov byte [eax], 7
jmp 0x4f6a0c
mov eax, dword [esi + 0x300]
call fcn.00547ce4
dec eax
jle 0x4f5ea4
mov eax, esi
call fcn.005c2298
test al, al
jne 0x4f5ea4
xor ebx, ebx
mov eax, dword [0x672e90]
mov byte [eax], 0xb
jmp 0x4f6a0c
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 0x4f5ec6
xor ebx, ebx
mov eax, dword [0x672e90]
mov byte [eax], 0xc
jmp 0x4f6a0c
mov eax, dword [0x66feec]
mov al, byte [eax]
cmp al, byte [esi + 0x344]
je 0x4f5efe
movsx eax, byte [esi + 0x344]
cmp ax, 1
jne 0x4f5f0d
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.005efb24
test al, al
jne 0x4f5f0d
xor ebx, ebx
mov eax, dword [0x672e90]
mov byte [eax], 0xd
jmp 0x4f6a0c
mov eax, esi
call fcn.005c48f0
test al, al
je 0x4f5f27
xor ebx, ebx
mov eax, dword [0x672e90]
mov byte [eax], 0x20
jmp 0x4f6a0c
call fcn.004f4d18
mov ebx, eax
xor bl, 1
jmp 0x4f6a0c
mov eax, dword [esi + 0x300]
call fcn.00547ce4
dec eax
jle 0x4f5f5e
mov eax, esi
call fcn.005c2298
test al, al
jne 0x4f5f5e
xor ebx, ebx
mov eax, dword [0x672e90]
mov byte [eax], 0xb
jmp 0x4f6a0c
call fcn.004f4d18
mov ebx, eax
xor bl, 1
jmp 0x4f6a0c
mov eax, esi
call fcn.005c208c
test al, al
jne 0x4f5f87
xor ebx, ebx
mov eax, dword [0x672e90]
mov byte [eax], 7
jmp 0x4f6a0c
cmp byte [esi + 0x345], 0
je 0x4f5f9f
xor ebx, ebx
mov eax, dword [0x672e90]
mov byte [eax], 0x67
jmp 0x4f6a0c
mov eax, dword [esi + 0x300]
call fcn.00547ce4
dec eax
jle 0x4f5fc7
mov eax, esi
call fcn.005c2298
test al, al
jne 0x4f5fc7
xor ebx, ebx
mov eax, dword [0x672e90]
mov byte [eax], 0xb
jmp 0x4f6a0c
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 0x4f5fe9
xor ebx, ebx
mov eax, dword [0x672e90]
mov byte [eax], 0xc
jmp 0x4f6a0c
cmp byte [esi + 0x344], 0
je 0x4f6001
xor ebx, ebx
mov eax, dword [0x672e90]
mov byte [eax], 0xd
jmp 0x4f6a0c
mov edx, ebx
mov eax, esi
call fcn.00563ac8
test al, al
je 0x4f601d
xor ebx, ebx
mov eax, dword [0x672e90]
mov byte [eax], 0x17
jmp 0x4f6a0c
mov eax, dword [esi + 0x300]
mov eax, dword [eax + 0x14]
mov edi, dword [eax + 0x10]
mov edx, edi
mov eax, esi
call fcn.005bd358
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.00543a0c
lea edx, [ebp - 0x48]
xor ecx, ecx
mov eax, esi
call fcn.005c4aa8
test al, al
je 0x4f606a
xor ebx, ebx
mov eax, dword [0x672e90]
mov byte [eax], 0xf
jmp 0x4f6a0c
call fcn.004f5380
test al, al
je 0x4f6082
xor ebx, ebx
mov eax, dword [0x672e90]
mov byte [eax], 0x10
jmp 0x4f6a0c
call fcn.004f4d18
mov ebx, eax
xor bl, 1
jmp 0x4f6a0c
test esi, esi
je 0x4f60aa
mov al, byte [0x4f6a40]
push eax
xor ecx, ecx
xor edx, edx
mov eax, esi
call fcn.005c4480
test eax, eax
jg 0x4f60b1
xor ebx, ebx
jmp 0x4f6a0c
mov bl, 1
jmp 0x4f6a0c
mov eax, esi
call fcn.005c208c
test al, al
jne 0x4f60e5
mov eax, dword [esi + 0x318]
cmp dword [eax + 0x18], 0
jle 0x4f60d6
mov bl, 1
jmp 0x4f6a0c
xor ebx, ebx
mov eax, dword [0x672e90]
mov byte [eax], 7
jmp 0x4f6a0c
mov eax, esi
call fcn.005c2210
test al, al
je 0x4f60ff
xor ebx, ebx
mov eax, dword [0x672e90]
mov byte [eax], 8
jmp 0x4f6a0c
mov bl, 1
jmp 0x4f6a0c
cmp byte [esi + 0x45c], 0
je 0x4f611e
xor ebx, ebx
mov eax, dword [0x672e90]
mov byte [eax], 0x11
jmp 0x4f6a0c
mov eax, esi
call fcn.005c208c
test al, al
jne 0x4f614b
mov eax, dword [esi + 0x318]
cmp dword [eax + 0x18], 0
jle 0x4f613c
mov bl, 1
jmp 0x4f6a0c
xor ebx, ebx
mov eax, dword [0x672e90]
mov byte [eax], 7
jmp 0x4f6a0c
mov eax, esi
call fcn.005c2210
test al, al
je 0x4f6165
xor ebx, ebx
mov eax, dword [0x672e90]
mov byte [eax], 8
jmp 0x4f6a0c
mov bl, 1
jmp 0x4f6a0c
mov eax, esi
call fcn.005c2210
test al, al
je 0x4f6186
xor ebx, ebx
mov eax, dword [0x672e90]
mov byte [eax], 8
jmp 0x4f6a0c
test byte [0x672e70], 1
je 0x4f6204
call fcn.00536b48
xor edx, edx
call fcn.00535c50
call fcn.00536b48
call fcn.00535e24
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.00536b48
cmp byte [eax + 0x1c], 0
je 0x4f61f5
and dword [0x672e70], 0xfffffffe
call fcn.00536b48
call fcn.00535ab4
mov word [ebp - 0xf], ax
test byte [ebp - 0xf], 2
je 0x4f61fa
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 0x4f61fa
call fcn.00506b9c
call fcn.00536b48
call fcn.00535e10
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 4]
cmp byte [eax + 0xc], 0
jne 0x4f622d
call fcn.00536b48
cmp dword [eax + 0x24], 0
jne 0x4f622d
call fcn.00536b48
cmp dword [eax + 0x38], 0
jne 0x4f622d
xor ebx, ebx
jmp 0x4f622f
mov bl, 1
test bl, bl
jne 0x4f6240
mov eax, dword [0x672e90]
mov byte [eax], 9
jmp 0x4f6a0c
cmp edi, 0xd35
je 0x4f6264
cmp edi, 0xd36
je 0x4f6264
cmp edi, 0xd37
je 0x4f6264
cmp edi, 0xd38
jne 0x4f6a0c
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 4]
cmp byte [eax + 0xd], 0xff
je 0x4f62c3
mov eax, esi
call fcn.005c208c
test al, al
jne 0x4f62c3
mov eax, esi
call fcn.005c20c4
test al, al
je 0x4f62c3
cmp edi, 0xd36
jne 0x4f6a0c
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 4]
mov al, byte [eax + 0xd]
sub al, 1
je 0x4f62a9
sub al, 2
jne 0x4f62c3
mov edx, dword [esi + 0x258]
mov eax, esi
call fcn.005efb5c
cmp dword [eax + 0x275c], 0
jle 0x4f6a0c
xor ebx, ebx
jmp 0x4f6a0c
cmp byte [esi + 0x45c], 0
je 0x4f62e2
xor ebx, ebx
mov eax, dword [0x672e90]
mov byte [eax], 0x11
jmp 0x4f6a0c
call fcn.00536b48
call fcn.00535c0c
test al, al
je 0x4f6319
call fcn.00536b48
call fcn.005355d0
call fcn.005340cc
test al, al
je 0x4f6328
call fcn.00536b48
call fcn.005355d0
mov eax, dword [eax + 8]
call fcn.005c45b4
test al, al
jne 0x4f6328
xor ebx, ebx
mov eax, dword [0x672e90]
mov byte [eax], 0x12
jmp 0x4f6a0c
mov eax, esi
call fcn.005c2210
test al, al
je 0x4f6342
xor ebx, ebx
mov eax, dword [0x672e90]
mov byte [eax], 8
jmp 0x4f6a0c
call fcn.004f4d18
mov ebx, eax
xor bl, 1
jmp 0x4f6a0c
cmp dword [esi + 0x4b0], 0
setge bl
test bl, bl
jne 0x4f6a0c
mov eax, dword [0x672e90]
mov byte [eax], 5
jmp 0x4f6a0c
mov eax, dword [esi + 0x4ac]
mov eax, dword [eax + 0x18]
dec eax
cmp eax, dword [esi + 0x4b0]
setg bl
test bl, bl
jne 0x4f6a0c
mov eax, dword [0x672e90]
mov byte [eax], 6
jmp 0x4f6a0c
mov eax, dword [0x66e9cc]
cmp byte [eax], 2
jne 0x4f63b1
xor ebx, ebx
mov eax, dword [0x672e90]
mov byte [eax], 0x15
jmp 0x4f6a0c
call fcn.004f4d18
mov ebx, eax
xor bl, 1
jmp 0x4f6a0c
mov eax, dword [0x66e9cc]
cmp byte [eax], 2
jne 0x4f63d9
xor ebx, ebx
mov eax, dword [0x672e90]
mov byte [eax], 0x15
jmp 0x4f6a0c
mov eax, dword [0x66fe10]
cmp byte [eax], 0
jne 0x4f63ed
mov eax, dword [0x66e900]
cmp byte [eax], 0
je 0x4f63fc
call fcn.004f4d18
mov ebx, eax
xor bl, 1
jmp 0x4f6a0c
xor ebx, ebx
mov eax, dword [0x672e90]
mov byte [eax], 0x4a
jmp 0x4f6a0c
cmp dword [esi + 0x81c], 0
je 0x4f6423
xor ebx, ebx
mov eax, dword [0x672e90]
mov byte [eax], 0x16
jmp 0x4f6a0c
cmp byte [esi + 0x344], 0
je 0x4f643b
xor ebx, ebx
mov eax, dword [0x672e90]
mov byte [eax], 0xd
jmp 0x4f6a0c
mov eax, esi
call fcn.005c5a7c
mov dword [ebp - 0xc], eax
mov edx, dword [ebp - 0xc]
mov eax, esi
call fcn.00563ac8
test al, al
je 0x4f6462
xor ebx, ebx
mov eax, dword [0x672e90]
mov byte [eax], 0x17
jmp 0x4f6a0c
mov eax, dword [esi + 0x5bc]
cmp dword [eax + 0x18], 0
jne 0x4f6499
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.00551db0
sub ax, 0x21
jae 0x4f6499
xor ebx, ebx
mov eax, dword [0x672e90]
mov byte [eax], 0x6b
jmp 0x4f6a0c
call fcn.004f4d18
mov ebx, eax
xor bl, 1
jmp 0x4f6a0c
cmp byte [esi + 0x14e], 0
je 0x4f64c3
mov eax, dword [0x66e8a8]
cmp byte [eax + 0x6e], 4
jne 0x4f64c3
xor ebx, ebx
jmp 0x4f6a0c
mov bl, 1
jmp 0x4f6a0c
cmp dword [esi + 0x81c], 0
jne 0x4f6506
call fcn.004f4d18
test al, al
je 0x4f64e3
xor ebx, ebx
jmp 0x4f6a0c
mov eax, esi
call fcn.005e512c
cmp dword [eax + 0x24], 0
setg bl
test bl, bl
jne 0x4f6a0c
mov eax, dword [0x672e90]
mov byte [eax], 0x3c
jmp 0x4f6a0c
xor ebx, ebx
jmp 0x4f6a0c
mov eax, esi
call fcn.005c2254
test al, al
je 0x4f6527
xor ebx, ebx
mov eax, dword [0x672e90]
mov byte [eax], 8
jmp 0x4f6a0c
cmp dword [esi + 0x81c], 0
je 0x4f653f
xor ebx, ebx
mov eax, dword [0x672e90]
mov byte [eax], 0x16
jmp 0x4f6a0c
call fcn.004f4d18
mov ebx, eax
xor bl, 1
test bl, bl
je 0x4f6a0c
sub edi, 0x11b3
je 0x4f6570
sub edi, 6
je 0x4f6570
sub edi, 0x3f
je 0x4f658e
sub edi, 0x2b7
je 0x4f658e
jmp 0x4f6a0c
mov eax, esi
call fcn.005c48f0
test al, al
je 0x4f6a0c
xor ebx, ebx
mov eax, dword [0x672e90]
mov byte [eax], 0x20
jmp 0x4f6a0c
mov eax, esi
call fcn.005c4940
test al, al
je 0x4f6a0c
xor ebx, ebx
mov eax, dword [0x672e90]
mov byte [eax], 0x17
jmp 0x4f6a0c
mov eax, esi
call fcn.005e512c
cmp dword [eax + 0x24], 0
setg bl
test bl, bl
jne 0x4f65cb
mov eax, dword [0x672e90]
mov byte [eax], 0x3c
jmp 0x4f6a0c
cmp edi, 0x11b8
jne 0x4f65e3
call fcn.004f4d18
test al, al
je 0x4f65e3
xor ebx, ebx
jmp 0x4f6a0c
cmp edi, 0x11b8
jne 0x4f6605
mov eax, esi
call fcn.005c208c
test al, al
jne 0x4f6605
xor ebx, ebx
mov eax, dword [0x672e90]
mov byte [eax], 7
jmp 0x4f6a0c
cmp edi, 0x11b2
je 0x4f661d
cmp edi, 0x11b4
je 0x4f661d
cmp edi, 0x11b8
jne 0x4f663b
mov eax, dword [0x66f694]
mov eax, dword [eax]
call fcn.00637dac
dec eax
jle 0x4f663b
xor ebx, ebx
mov eax, dword [0x672e90]
mov byte [eax], 0x5b
jmp 0x4f6a0c
cmp edi, 0x11b2
je 0x4f665f
cmp edi, 0x11b4
je 0x4f665f
cmp edi, 0x11b5
je 0x4f665f
cmp edi, 0x11b8
jne 0x4f6a0c
mov eax, dword [0x66f694]
mov eax, dword [eax]
call fcn.00637dac
test eax, eax
jne 0x4f6a0c
xor ebx, ebx
mov eax, dword [0x672e90]
mov byte [eax], 0x63
jmp 0x4f6a0c
mov eax, esi
call fcn.005c48f0
test al, al
je 0x4f669c
xor ebx, ebx
mov eax, dword [0x672e90]
mov byte [eax], 0x20
jmp 0x4f6a0c
mov bl, 1
jmp 0x4f6a0c
mov eax, dword [esi + 0x5a0]
cmp dword [eax + 0x18], 1
sete bl
test bl, bl
jne 0x4f6a0c
mov eax, dword [0x672e90]
mov byte [eax], 0x1e
jmp 0x4f6a0c
mov eax, dword [esi + 0x5a0]
cmp dword [eax + 0x18], 0
setg bl
jmp 0x4f6a0c
xor ebx, ebx
mov eax, dword [esi + 0x5c4]
cmp eax, 0
jl 0x4f6712
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.0064eb58
test al, al
je 0x4f6709
mov bl, 1
jmp 0x4f6712
dec dword [ebp - 0xc]
cmp dword [ebp - 0xc], 0xffffffff
jne 0x4f66e7
test bl, bl
jne 0x4f6a0c
mov eax, dword [0x672e90]
mov byte [eax], 0x1c
jmp 0x4f6a0c
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 0x4f676a
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.0064eb58
test al, al
je 0x4f6764
mov bl, 1
jmp 0x4f676a
inc dword [ebp - 0xc]
dec edi
jne 0x4f6742
test bl, bl
jne 0x4f6a0c
mov eax, dword [0x672e90]
mov byte [eax], 0x1c
jmp 0x4f6a0c
mov edi, dword [esi + 0x5a0]
xor ebx, ebx
mov eax, dword [edi + 0x18]
dec eax
cmp eax, 0
jl 0x4f6807
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.005458bc
cmp dword [ebp - 8], 0
je 0x4f67ca
push dword [ebp - 4]
push 0x4f6a48
push dword [ebp - 8]
lea eax, [ebp - 4]
mov edx, 3
call fcn.00403b78
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.005e5ac8
mov edx, eax
mov cl, byte [0x4f6a4c]
mov eax, esi
call fcn.005c1208
mov eax, dword [ebp - 0x4c]
mov edx, dword [ebp - 4]
call fcn.00403bc0
je 0x4f67fe
mov bl, 1
jmp 0x4f6807
dec dword [ebp - 0xc]
cmp dword [ebp - 0xc], 0xffffffff
jne 0x4f6793
test bl, bl
jne 0x4f6a0c
mov eax, dword [0x672e90]
mov byte [eax], 0x1f
jmp 0x4f6a0c
cmp dword [esi + 0x81c], 0
je 0x4f6834
xor ebx, ebx
mov eax, dword [0x672e90]
mov byte [eax], 0x16
jmp 0x4f6a0c
call fcn.004f4d18
mov ebx, eax
xor bl, 1
jmp 0x4f6a0c
mov eax, dword [esi + 0x5a4]
mov eax, dword [eax + 0x18]
test eax, eax
jne 0x4f685f
xor ebx, ebx
mov eax, dword [0x672e90]
mov byte [eax], 0x4d
jmp 0x4f6a0c
dec eax
jle 0x4f6871
xor ebx, ebx
mov eax, dword [0x672e90]
mov byte [eax], 0x20
jmp 0x4f6a0c
mov bl, 1
jmp 0x4f6a0c
mov eax, dword [esi + 0x5a8]
mov eax, dword [eax + 0x18]
test eax, eax
jne 0x4f6894
xor ebx, ebx
mov eax, dword [0x672e90]
mov byte [eax], 0x4e
jmp 0x4f6a0c
dec eax
jle 0x4f68a6
xor ebx, ebx
mov eax, dword [0x672e90]
mov byte [eax], 0x20
jmp 0x4f6a0c
mov bl, 1
jmp 0x4f6a0c
mov eax, dword [esi + 0x5a4]
cmp dword [eax + 0x18], 0
je 0x4f68c5
mov eax, dword [esi + 0x5a8]
cmp dword [eax + 0x18], 0
jle 0x4f68d4
xor ebx, ebx
mov eax, dword [0x672e90]
mov byte [eax], 0x4d
jmp 0x4f6a0c
mov bl, 1
jmp 0x4f6a0c
mov eax, dword [esi + 0x5a8]
cmp dword [eax + 0x18], 0
je 0x4f68f3
mov eax, dword [esi + 0x5a4]
cmp dword [eax + 0x18], 0
jle 0x4f6902
xor ebx, ebx
mov eax, dword [0x672e90]
mov byte [eax], 0x4e
jmp 0x4f6a0c
mov bl, 1
jmp 0x4f6a0c
mov eax, dword [esi + 0x5ac]
cmp dword [eax + 0x18], 0
jne 0x4f6924
xor ebx, ebx
mov eax, dword [0x672e90]
mov byte [eax], 0x4f
jmp 0x4f6a0c
mov bl, 1
jmp 0x4f6a0c
mov eax, esi
call fcn.005e301c
mov eax, dword [esi + 0x5dc]
cmp dword [eax + 0x18], 0
setg bl
test bl, bl
jne 0x4f6950
mov eax, dword [0x672e90]
mov byte [eax], 0x5c
jmp 0x4f6a0c
cmp edi, 0x14b9
je 0x4f6964
cmp edi, 0x14c8
jne 0x4f6a0c
mov eax, dword [0x66f300]
mov eax, dword [eax]
call fcn.00637dac
dec eax
jle 0x4f6a0c
xor ebx, ebx
mov eax, dword [0x672e90]
mov byte [eax], 0x5d
jmp 0x4f6a0c
xor ebx, ebx
mov eax, dword [esi + 0x12c]
dec eax
cmp eax, 0
jl 0x4f6a0c
mov dword [ebp - 0xc], eax
mov edx, dword [ebp - 0xc]
mov eax, esi
call fcn.005fb958
test al, al
je 0x4f69f7
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 0x4f69cb
cmp edi, 0x16b5
je 0x4f69cb
xor edx, edx
jmp 0x4f69cd
mov dl, 1
cmp al, dl
jne 0x4f69f7
cmp edi, 0x16b4
je 0x4f69f3
cmp edi, 0x16b5
je 0x4f69f3
mov edx, dword [ebp - 0xc]
mov eax, dword [esi + 0x5b8]
call fcn.0064eb58
test al, al
je 0x4f69f7
mov bl, 1
jmp 0x4f6a0c
dec dword [ebp - 0xc]
cmp dword [ebp - 0xc], 0xffffffff
jne 0x4f6997
jmp 0x4f6a0c
call fcn.004f4d18
mov ebx, eax
xor bl, 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4f6a36
lea eax, [ebp - 0x4c]
call fcn.00403880
lea eax, [ebp - 8]
mov edx, 2
call fcn.00403898
ret